home *** CD-ROM | disk | FTP | other *** search
/ Game Killer / Game_Killer.bin / 527.WOLFMAP.DOC < prev    next >
Text File  |  1992-10-20  |  19KB  |  431 lines

  1.  
  2. WOLFMAP - Wolfenstein 3D Map Processor.      (c) 1992   Sysma Automatisering
  3.  
  4.  
  5.  
  6. Disclaimer
  7. ----------
  8.  
  9. The program is delivered to you as is. Although copyrighted, we are not
  10. liable for any damage whatsoever when using this program, either in it's
  11. origional form or any altered form.
  12.  
  13. Although distributed freely, this is copyrighted material. You are hereby
  14. granted the rights to use and/or modify the program for your personal use.
  15. You may (re)distribute this program or your own modifications, PROVIDED you
  16. distribute the complete set of origional files with your own modified ones
  17. and you distribute them without charging any money or any other form of
  18. compensation.
  19.  
  20.  
  21. History
  22. -------
  23.  
  24. 06/10/92   Version 1.0     After a few weeks of beta testing and adding some
  25.                            functionality is this the first public release.
  26. 07/10/92   Version 1.01    Added automatic renaming of the game maps file
  27.                            when using the shareware version and converting
  28.                            maps between Wolf3D version 1.0, 1.1 and 1.2
  29. 11/10/92   Version 1.05    To allow for more efficient memory management and
  30.                            to accomodate certain non-Borland C++ compilers,
  31.                            all explicit far pointers were removed and replaced
  32.                            by normal pointers and functions using them. At
  33.                            the same time the memory model was changed to
  34.                            Large to keep a large heap.
  35. 12/10/92   Version 1.5     Out of dissatisfaction about the functioning of
  36.                            existing map editors, we added our own graphical
  37.                            map editor to WolfMap.
  38. 29/10/92   Version 1.6     Added the feature of creating a specified version
  39.                            of the map files when this version is not present.
  40.                            Also fixed a bug causing system crashes when
  41.                            creating maps that never existed in the map file.
  42.                            Maps, created from scratch now get the same titles
  43.                            as the same map number would get in the origional
  44.                            version of Wolf3D.
  45.                            Also, adjusted the drawing mode in the editor so
  46.                            you can move the mouse cursor outside the map area
  47.                            without losing the drawing mode when moving the
  48.                            cursor back in.
  49.  
  50.  
  51. Brief description
  52. -----------------
  53.  
  54. The idea for wolfmap came in july 1992. After playing Wolf-3D for a while,
  55. I started creating my own levels using the MapEdit program, written by Bill
  56. Kirby. The problem arose when the Wolf3D version 1.1 came out. The maps,
  57. generated by the MapEdit program, were unusable. It turned out that the 1.1
  58. version of Wolf3D uses a different compression format than version 1.0
  59.  
  60. The origional purpose of the Wolfmap program was to convert the map file
  61. back and forth between the Wolf3D versions 1.0 and 1.1. At a later stage
  62. functions were added to make a printout of a map to a file or printer and to
  63. display statistics about each map (such as how many secret doors there are,
  64. etc.)
  65.  
  66. The resulting program was the version 1.0 of Wolfmap. It takes a command, a
  67. set of Wolf3D map files and executes the command. Whenever changes are to be
  68. made to the maps, Wolfmap first backs up the origional files before making
  69. those changes.
  70.  
  71. The updated version 1.01 of Wolfmap adds support for Wolf3D version 1.2,
  72. and automatically renames the game maps file whenever converting to or
  73. from Wolf3D version 1.0 format files using the shareware version.
  74.  
  75. The updated version 1.5 adds an interactive, graphical editor. This is done
  76. because the existing map editors do not either fully implement the storage
  77. indirections used in the data files, or are limited to only one version of
  78. Wolf3D.
  79.  
  80.  
  81. Usage
  82. -----
  83.  
  84. The Wolfmap program accepts one command, together with optional flags and
  85. map numbers. Map numbers and flags may appear anywhere on the command line.
  86. Note that a command must be present. When more than one command is issued,
  87. only the first one will be executed.
  88.  
  89. When several different flags for the same basic function (format, version,
  90. number of columns, output destination) are specified, only the last one
  91. will be used. The other ones will be ignored.
  92.  
  93. Map numbers may be specified in two ways. The first one is to simply give a
  94. list of map numbers, separated by spaces. The second one is to specify a
  95. range of map numbers. A range is given by a map number, immediately followed
  96. by a minus sign ('-') and a second map number. In this secuence no spaces
  97. may be used and the first number must be less or equal to the second. All
  98. numbers within and including the range will be selected. When no map numbers
  99. are specifies, all maps are assumed.
  100.  
  101. Wolfmap executes it's commands on a set of Wolf3D map files. For the
  102. shareware version these files have the extention .WL1, for the commercial
  103. version .WL6. Wolfmap uses a third set (.LOC) of it's own when executing
  104. certain commands. Wolfmap contains autodetection logic to determine which
  105. version you have, so normally you don't have to specify a version explicitly.
  106.  
  107. When Wolfmap executes a command requiring changes to the origional map
  108. files, it will write the changes first to a set of work files. These files
  109. will have the extention .WRK, but normally these files will not be visible
  110. when Wolfmap returns to DOS, since Wolfmap tries to delete them before
  111. terminating. When the changes are made, the origional files will first be
  112. copied to backup files (.BAK), overwriting any previous backups. When this
  113. is successfull, it then copies the work files to the origional ones. This
  114. ensures that you don't loose your origional map files when fatal errors
  115. occur.
  116.  
  117. Wolf3D version 1.1 uses a different compression format for the map files
  118. than Wolf3D version 1.0. Normally, though, you don't have to specify the
  119. format, since Wolfmap contains autodetection logic to determine which
  120. compression format was used and will adjust to this format automatically.
  121. The compression format of Wolf3D version 1.2 is identical to that of
  122. version 1.1, since version 1.2 is only a bugfix release.
  123.  
  124.  
  125. Commands
  126. --------
  127.  
  128. Wolfmap can execute several commands. A detailed description of each
  129. command follows below.
  130.  
  131. h (or ?)    Show usage information on the screen.
  132.  
  133. c0          Convert all maps to Wolf3D version 1.0 compression format.
  134.  
  135. c1          Convert all maps to Wolf3D version 1.1 compression format.
  136.  
  137. c2          Convert all maps to Wolf3D version 1.2 compression format. This
  138.             command is the same as c1, but is added for convenience.
  139.  
  140. e           Export a selection of maps to a special set of map files. These
  141.             files have the extention .LOC
  142.  
  143. i           Import a selection of maps from the special set of map files.
  144.             The import and export commands can be used to transfer maps from
  145.             one set of Wolf3D map files to another.
  146.  
  147. m           Start the interactive, graphical editor / viewer. This command
  148.             ignores any given mapnumbers and enables editing of all maps, one
  149.             map at a time. See the editor section below for more details.
  150.  
  151. dt          Display the map numbers plus map titles of every map in the map
  152.             files.
  153.  
  154. ds          Display the map number, map title and statistics of every map in
  155.             the map files. The statistics are listed in 9 columns. Each
  156.             column is listed below.
  157.  
  158.             Door      The number of normal doors in the map.
  159.             Lock      The number of locked doors in the map.
  160.             Secr      The number of secret doors in the map.
  161.             Elev      The number of elevators to other levels in the map.
  162.             Trea      The number of treasures in the map. For this count all
  163.                       treasures (Cross, Chalace, Jewels, Crowns and Spheres)
  164.                       are added together.
  165.             Lvl1      The total number of actors when playing difficulty
  166.                       level 1 (Can I play, daddy) or 2 (Don't hurt me).
  167.             Lvl3      The total number of actors when playing difficulty
  168.                       level 3 (bring 'em on).
  169.             Lvl4      The total number of actors when playing difficulty
  170.                       level 4 (I am death incarnate).
  171.             Huge      The total number of huge guards in this map.
  172.  
  173. pm          Prints a selection of maps.
  174.  
  175. ps          Prints more detailed statistics of a selection of maps.
  176.  
  177. pl          Prints the legend for symbols, used in maps generated by the pm
  178.             command.
  179.  
  180.  
  181. Flags
  182. -----
  183.  
  184. Many Wolfmap commands can be modified using flags. Below follows a list of
  185. flags which can be used.
  186.  
  187. -s          Use the shareware version of the map files (ie. .WL1 files)
  188.  
  189. -c          Use the commercial version of the map files (ie. .WL6 files).
  190.             These files are the default when both sets are present.
  191.  
  192. -l          Use the special version of the map files (ie. .LOC files). This
  193.             version cannot be used in conjunction with the import or export
  194.             command, since these commands use this version implicitly.
  195.  
  196. -f0         Override the autodetection logic for determining the format and
  197.             force Wolf3D version 1.0 compression. For the import, export or
  198.             modify command this flag specifies that the transferred / edited
  199.             maps must be converted to Wolf3D version 1.0 compression format.
  200.             For these three commands, therefore, the autodetection cannot be
  201.             overridden.
  202.  
  203. -f1         Override the autodetection logic for determining the format and
  204.             force Wolf3D version 1.1 compression. For the import, export or
  205.             modify command this flag specifies that the transferred / edited
  206.             maps must be converted to Wolf3D version 1.1 compression format.
  207.             For these three commands, therefore, the autodetection cannot be
  208.             overridden.
  209.  
  210. -f2         Override the autodetection logic for determining the format and
  211.             force Wolf3D version 1.2 compression. For the import, export or
  212.             modify command this flag specifies that the transferred / edited
  213.             maps must be converted to Wolf3D version 1.2 compression format.
  214.             For these three commands, therefore, the autodetection cannot be
  215.             overridden.
  216.             This flag specifies the same format as -f1, but is added for
  217.             convenience.
  218.  
  219. -ou         Used in conjuction with the print commands only. This flag
  220.             specifies that each map output must be directed to a separate,
  221.             unique file, either LEVEL???.MAP for the pm command,
  222.             LEVEL???.STA for the ps command or LEGEND.MAP for the pl
  223.             command. In these names the ??? represents the map number.
  224.  
  225. -os         Used in conjunction with the print commands only. This flag
  226.             specifies that every map output will be directed to one file,
  227.             either LEVELS.MAP for the pm command, LEVELS.STA for the ps
  228.             command or LEGEND.MAP for the pl command. When no output flag
  229.             is specified, this is the default setting.
  230.  
  231. -oo         Used in conjunction with the print commands only. This flag
  232.             specifies that the map output will be directed to stdout. This
  233.             means that the output can be redirected to any file or device,
  234.             using the standard DOS redirect command, or '>'.
  235.  
  236. -ol         Used in conjunction with the pm command. It specifies that after
  237.             the maps are printed, the legend must be printed as well.
  238.  
  239. -w          Used in conjunction with the dt command. It specifies wide (or
  240.             three columns) display of the map titles.
  241.  
  242. -2          Used in conjunction with the dt command. It specifies two column
  243.             display of the map titles.
  244.  
  245.  
  246. The Editor
  247. ----------
  248.  
  249. The buildin graphical editor (from version 1.5 upwards) is based upon the
  250. Borland BGI graphics system and is designed for VGA systems only. Therefore,
  251. only the EGAVGA.BGI driver is supplied. If this driver is not in the current
  252. directory, the editor won't start. Since Wolf3D itself was written for VGA
  253. systems only, this shouldn't cause any problems.
  254.  
  255. Besides the graphics driver two other files MUST be present in the current
  256. directory, MAPDATA.DEF and OBJDATA.DEF. These are the same files with the
  257. same format as Bill Kirby used for his MapEdit program.
  258.  
  259. The design of the editor display is based upon the screen design used by Bill
  260. Kirby for his MapEdit program, but differs on several minor points. The
  261. screen is divided into two major areas, the map viewer and the legend
  262. (or key) viewer.
  263.  
  264. The map viewer contains a graphical, colored represenation of a map. The
  265. legend viewer contains of three other sections. The top section contains the
  266. selected legend (or key). This is the item which will be written into the map
  267. when editing. The large section contains a (partial) list of the available
  268. legends, either from the map values or from the object values. On the bottom
  269. there are four buttons. The 'MAP' button selects the map legend, the 'OBJECT'
  270. button selects the object legend, while the 'UP' and 'DOWN' buttons scroll
  271. up and down the selected legend list, respectively.
  272.  
  273. The editor accepts the following commands:
  274.  
  275. f           Toggles whether or not the floor values should be made visible.
  276.  
  277. o           Toggles whether or not the object values should be made visible.
  278.             Note that the object representing secret doors will always be
  279.             visible, as it is considered part of the map itself.
  280.  
  281. C           Clears the current map, so a new one can be started.
  282.  
  283. D           Discards any changes made to this map during this session and
  284.             reloads the map stored in the map file.
  285.  
  286. S           Saves all modifications to the current map in the map storage, so
  287.             they can be recalled with the <Esc> key. This command can be used
  288.             before making large changes to an already changed map as a sort of
  289.             undo feature. All changes from the saved point on can be rolled
  290.             back if you make mistakes. Remember that with the D command you
  291.             can roll back ALL changes and restore the map saved in the map
  292.             files.
  293.  
  294. 0 .. 9      Go directly to the selected map number in the current episode,
  295.             saving changes to the current map.
  296.  
  297. e           Save all changes to all changed maps and exit from the editor.
  298.  
  299. q           Discard all changes to all maps and terminate the edit session.
  300.  
  301. <Break>     Same as the 'q' command.
  302.  
  303. <Esc>       Discards any changes made during the editing of the current map.
  304.             This command differs from the discard command in that any
  305.             changes made during this session before the last save will
  306.             remain in effect. It just cancels out the changes after the last
  307.             save.
  308.  
  309. <->>        Save the current map and go to the next one in the current
  310.             episode. If the current one is the last one, wraps to the first
  311.             map.
  312.  
  313. <<->        Save the current map and go to the previous one in the current
  314.             episode. If the current one is the first one, wraps to the last
  315.             map.
  316.  
  317. <PageUp>    Save the current map and go to the next episode. If the current
  318.             episode is the last one, wraps to the first episode.
  319.  
  320. <PageDown>  Save the current map and go to the previous episode. If the
  321.             current episode is the first one, wraps to the last episode.
  322.  
  323.  
  324. Definition file format
  325. ----------------------
  326.  
  327. The current known objects are stored in two text files, MAPDATA.DEF and
  328. OBJDATA.DEF. Since these files are in text format, you can edit them using
  329. any normal ASCII editor. If you figure out a new object, you can add it's
  330. description to the map / object list respectively. Each line in the two files
  331. contains 3 items (you MUST follow this exact format):
  332.  
  333. 0000 0000 Objectname
  334.  
  335. The first four digits are HEX for the object number.  Right now, even though
  336. there are 4 digits, you are restricted in the values to use. For MAPDATA.DEF
  337. the largest value is 00ff and for OBJDATA.DEF the largest value is 01ff.
  338.  
  339. The second four digits define how the object will look in the map. The first
  340. two digits are the primary / secondary colors. The third digit is the graphic
  341. type, and the fourth digit is the character string to use if the graphic type
  342. is "text".
  343.  
  344. Colors:
  345.    0 - black
  346.    1 - blue
  347.    2 - green
  348.    3 - cyan
  349.    4 - red
  350.    5 - magenta
  351.    6 - brown
  352.    7 - light grey
  353.    8 - dark grey
  354.    9 - light blue
  355.    a - light green
  356.    b - light cyan
  357.    c - light red
  358.    d - light magenta
  359.    e - yellow
  360.    f - white
  361.  
  362. Graphic types:
  363.    0 - text (uses fourth character of graphic definition)
  364.    1 - solid box
  365.    2 - checkered
  366.    3 - solid box (primary) with decoration (secondary)
  367.    4 - checkered box (primary) with decoration (secondary)
  368.    5 - large filled circle (primary) with smaller circle (secondary)
  369.    6 - horizontal bar
  370.    7 - vertical bar
  371.    8 - two color box (used for landscape view)
  372.    9 - single pixel centered 
  373.    a - 3x3 pixel block
  374.    b - 5x5 pixel block
  375.    c - 7x7 pixel block (or a complete box)
  376.    d - X (primary)
  377.    e - rectangle
  378.    f - arrow  (secondary color indicates direction: 0=n,1=ne,2=e,3=se,
  379.                                                     4=s,5=sw,6=w,7=nw)
  380.  
  381.  
  382. Memory Requirements
  383. -------------------
  384.  
  385. The Wolfmap program uses very little memory. Besides the code and data, stored
  386. in the executable itself, it only uses about 30K as intermediate memory during
  387. processing of the commands. Given the current size of the program (about 70K),
  388. this means that Wolfmap will operate with as little as 100K of free memory.
  389.  
  390. The only exception is the buildin editor. The editor itself loads several
  391. files into memory. With the supplied definition files this totals to about
  392. 20K of extra memory needed. Furthermore, every MODIFIED map is kept in memory
  393. until the editor session is terminated, or modified maps are discarded. In
  394. compressed form, each map uses about 6K of memory. When modifying all 60 maps
  395. at the same time you must expect a memory usage of around 500K.
  396.  
  397.  
  398. Comments
  399. --------
  400.  
  401. When you have comments or find bugs, please do not hesitate to contact us.
  402. Also, if you have ideas on how to expand the program or have suggestions for
  403. new commands or options, please contact us.
  404.  
  405.  
  406.  
  407. Our email address is:
  408.  
  409. FIDO: 'Jan Peter Dijkstra' at 2:283/303.0
  410.  
  411.  
  412.  
  413. We can also me contacted by mail. Our mail address is:
  414.  
  415. Sysma Automatisering
  416. tav. J.P. Dijkstra
  417. Fazantstraat 169
  418. 7523 DP  Enschede
  419. The Netherlands
  420.  
  421. Phone: +31 53 337410
  422. Fax:   +31 53 311090
  423.  
  424.  
  425.  
  426. Please do not modify Wolfmap and make those modifications public. This
  427. interferes with regular updates, coming from us. Use modifications only for
  428. yourself. If you think it is worthwile, contact us using the listed methods.
  429. If we agree, we will incorporate your changes in a next release.
  430.  
  431.