home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the DOOM Programming Gurus / Tricks_of_the_Doom_Programming_Gurus.iso / bonus / editors / wacker / dox.txt < prev    next >
Encoding:
Text File  |  1995-03-14  |  37.8 KB  |  949 lines

  1.  
  2. WACKER V1.0 DOCUMENTATION
  3. -------------------------
  4.  
  5. Wacker allows the manipulation, modification and creation of all of
  6. the graphics (excluding floors) within the DooM wad file. It has a
  7. mouse based drag and drop interface to allow easy texture manipulation.
  8.  
  9. WACKER is FREEWARE. But if you wish to send me money I won't object,
  10. my snail mail address is below. 8) Even a postcard would be nice...
  11.  
  12. WACKER and all the files within the WACKER10.ZIP archive should be
  13. distributed without modification. This program may be copied freely.
  14. If you wish to place WACKER on a CDROM distribution you are free
  15. to do so, all I ask is that you send me a copy of the CDROM.
  16.  
  17. ---------------------------------------------------------------------
  18.  
  19. DISCLAIMER (Just for my protection)
  20.  
  21. When you execute this program you do so at your own risk. I the author
  22. take no repsonsiblity for any damage caused and make no claims as to
  23. the functionality of this program.
  24.  
  25. Please dont be frightened by the above sentence. It it just to cover
  26. me in case anything should go wrong. WACKER does crash occasionaly,
  27. but it has NEVER done any serious damage to any of the machines it
  28. has been tested on.
  29.  
  30. Regards
  31.  
  32. Keith Wilkins
  33.  
  34.  
  35. I can be contacted via email or snail mail at the addresses below:
  36.  
  37. spike@nectech-uk.com OR spike@nectech.demon.co.uk
  38.  
  39. Keith Wilkins
  40. 1 High Street
  41. Edgmond
  42. Newport
  43. Shropshire
  44. TF10 8JW
  45. UK
  46.  
  47.  
  48. ---------------------------------------------------------------------
  49.  
  50. Thanks to:
  51.  
  52. Lee Witek           For pre-alpha testing an lots of handy ideas about the
  53.                     user interface, and the coke machine.
  54.  
  55. Jean Serge Gagnon   Alpha testing and suggestions for improvement
  56.  
  57. Barry Bloom         Testing & suggestions
  58.  
  59. Rob McCown          Testing & suggestions
  60.  
  61. Matt Fell           Unofficial Doom specs
  62.  
  63. Olivier Montauny    For persevering with the net & DeuTex
  64.  
  65. iD                  Doom
  66.  
  67.  
  68. And everyone involved in alt.games.doom.
  69.  
  70.  
  71. ---------------------------------------------------------------------
  72.  
  73.  
  74. Version Control
  75. ---------------
  76.  
  77. 1.0     15/03/95  * Various bug fixes
  78.  
  79. Beta8   31/08/94  * New bitmap files now held as temporary files on
  80.                     disk. This should fix all of those crabby memory
  81.                     problems.
  82.                   * New WACKER.INI file for all those people who want
  83.                     to keep the doom directory free of dross.
  84.                   * Shiny new bitmap cursor.
  85.                   * Various bug fixes
  86.  
  87.  
  88. Beta7   28/07/94  * Bug fix to fTextureDragNDrop & fPictureDragNDrop
  89.                     due to some mouse drivers returning a modulo 2
  90.                     mouse position on the X axis after the upper
  91.                     limit was modified for 640 resolution.
  92.                   * New code for barry@infant2. Semi automated
  93.                     texture creation. Try the new LTB command.
  94.                   * Patch loading modified so that if your patches
  95.                     are referneced by TEXTURE1 or TEXTURE2 they need
  96.                     not be placed between P_START & P_END markers
  97.  
  98. Beta6   26/07/94  * Modifications to dox.txt after feedback from Joe
  99.                     Pulic:
  100.                             New sections on making/modifying textures
  101.                             Notes on how to overcome the Deu problem
  102.                             Explanation of examples
  103.                   * New code to allow modification of textures and
  104.                     deletion of patches by pickup and drop.
  105.                   * Code added to allow patches to be pushed to the
  106.                     back or pulled to the front of a texture.
  107.  
  108. Beta5   22/07/94  * Serious bug fixed which stoped any level data being
  109.                     saved
  110.                   * Code added to allow saving of NEW textures and
  111.                     creation of new textures.
  112.  
  113. Beta4   15/07/94  * Button text added
  114.                   * DragNDrop partially implemented
  115.                   * Some minor bugs fixed
  116.                   * Finally squashed the obscure save bitmap bug that
  117.                     was giving real problems on bitmaps where the width
  118.                     wasnt a multiple of 4, bloody windows!!!
  119.  
  120. Beta3   09/07/94  * Bug fix to cure save BMP error, it seems a line
  121.                     of code got deleted between Alpha3 & Beta1/2 that
  122.                     setup in internal pointer in fBMPSave().
  123.                   * Fix of load object bug memory being accidently freed
  124.                     by the gallery display function.
  125.                   * Button regions added for texture & picture galleries
  126.                     but no internal graphics yet.
  127.  
  128. Beta2    07/07/94  * Loads of new functionality.
  129.                   * Bug fixed in the gallery that was causing GPF
  130.                     under windows on some systems.
  131.                   * Improved documentation.
  132.  
  133. Alpha3  24/06/94  * First limited alpha test of basic functionality
  134.  
  135.  
  136.  
  137. ---------------------------------------------------------------------
  138.  
  139.  
  140. Known bugs
  141. ----------
  142.  
  143. Mainly regarding the copy of levels between wads. The basic advice
  144. is dont copy levels between wads. It may of may not work, due to
  145. the stupid way in which I implemented level storage within the
  146. Wacker code, and the fact I can't be bothered to go back and
  147. replace it with something more sensible.
  148.  
  149.  
  150. Copy (replace)       - Copy doesn't work if you are replacing a LEVEL
  151.                        in the destination. Delete then copy to ensure
  152.                        correct copying. There is no problem if the
  153.                        copy creates a new object, it is only replace
  154.                        that has the bug.
  155.  
  156. Move                 - Moving a level may screw up a wad file. Dont
  157.                        move the level using move. You should not need
  158.                        to do this anyways.
  159.  
  160.  
  161. ---------------------------------------------------------------------
  162.  
  163.  
  164. Future Additions/Features
  165. -------------------------
  166.  
  167. None, never, no how, no way. Well maybe a bug fix if someone
  168. especially requests it.
  169.  
  170. My advice is to use DeuTex instead, Olivier has a lot more
  171. patience than me, and probably a lot more spare time.
  172.  
  173.  
  174.  
  175. ---------------------------------------------------------------------
  176.  
  177.  
  178.  
  179. Getting Started
  180. ***************
  181.  
  182. Place all the files in a directory of your choice, below the doom
  183. directory in \doom\wacker seems sensible. Then edit wacker.ini to
  184. give the path to your doom wad file.
  185.  
  186. Type WACKER to run the program. It takes about 10-20 seconds to
  187. initilise depending on the machine (sorry, but there is a mass of
  188. data to load & check for consistency).
  189.  
  190. WACKER will only run in 640x480x256 SVGA mode. If you don't have SVGA
  191. then use a VESA emulator such as UNIVESA.
  192.  
  193. It has been tested without problems on the following configs:
  194.  
  195. Clone 486DX2-66 16MB RAM Diamond VIPER VLB grapics card
  196. Clone 486DX40 16MB RAM GENOA VLB card with Cirrus chipset
  197. NEC Versa-50 laptop 4MB RAM
  198.  
  199. WACKER works under windows (if you must). I have been told that it now
  200. works O.K under OS/2. The only problem I've come across under windows
  201. is on the Diamond VIPER machine, using crtl-esc to task switch will
  202. completely lock the machine. On the Versa the screen corrupts on return
  203. to wacker but it still functions O.K. The moral of this story is don't
  204. bother with windows.
  205.  
  206. The more free memory the better. Running from a RAM disk can speed thing
  207. up quite considerably, that is if you have the odd spare meg or 12. I've 
  208. now modified the way wacker holds loaded objects and it should now not
  209. run out of memory. WACKER will create a temporary file on disk for each
  210. object that you load into memory. When you exit all of these files will
  211. be destroyed.
  212.  
  213. WACKER is written in C using Watcom V10 running with the Rational Systems
  214. Dos extender.
  215.  
  216.  
  217. BATCH FILES
  218. ***********
  219.  
  220. WACKER now supports external batch files and an argument to speedup
  221. that initialisation process. The batch files must be ordinary
  222. text files with 1 command+args per line. To run a batch file type:
  223.  
  224.     WACKER [filename]
  225.  
  226. Its not too pretty at the moment but what the hell, it works, or at
  227. least I think it does !!
  228.  
  229.  
  230. To stop WACKER building the galleries then start WACKER with the
  231.  
  232.  -NOGALLERIES option
  233.  
  234. and it will start up faster but you wont have any pretty pictures to
  235. look at.
  236.  
  237.  
  238.  
  239. WACKER MANUAL
  240. *************
  241.  
  242. The main wacker screen will apprear after intialistation.
  243.  
  244.  
  245.                ------------     --------------
  246.               |            |   |             |
  247.               |            |   |             |
  248.               |  TEXTURE   |   |   PICTURE   |
  249.               |  WINDOW    |   |    WINDOW   |
  250.               |            |   |             |
  251.               |            |   |             |
  252.               |            |   |             | 
  253.               |            |   |             |                  
  254.                ------------     -------------
  255.                          
  256.                ------------------------------                 
  257.               |                              |                
  258.               | COMMAND WINDOW               |                
  259.               |                              |                
  260.                ------------------------------                  
  261.  
  262. Click the mouse within a window to activate it, or use the keyboard:
  263.  
  264. C = Command Window
  265. T = Texture Gallery
  266. P = Picture Gallery
  267.  
  268. When you wish to exit WACKER press ALT_X or type BYE in the command
  269. window.
  270.  
  271.  
  272. How WADS are handled
  273. --------------------
  274.  
  275. You can load many different PWADS into WACKER, each PWAD you load
  276. must be given a HANDLE which can be up to 8 characters in length. The
  277. purpose of the HANDLE is to allow you to reference a wad file by a short
  278. name rather than a long path+file name. All PWADs are held separately and
  279. do not patch each other. The exception to this is the texture and picture
  280. resources, if a PWAD contains new pictures or textures these will replace
  281. textures in the main picture & texture galleries.
  282.  
  283. A picture is defined as any object within a WAD file that is in the
  284. doom picture format. These can be PATCHES, SPRITES or GRAPHICS, where
  285. GRAPHICS refers to the DOOM help screens & player faces, status bar
  286. etc. Pictures can be detected in a PWAD but they must be in the following
  287. formats OR have a name identical to a gallery patch/sprite/graphic:
  288.  
  289. PATCHES     Enclosed between P_START & P_END entries
  290. SPRITES     Enclosed between S_START & S_END entries
  291. GRAPHICS    New objects are not allowed but any name conforming to the
  292.             naming conventions of the main DOOM.WAD will be picked up
  293.             and loaded as a graphic replacing the current object
  294.  
  295. Any operation involving a PWAD or IWAD requires the use of the handle
  296. to identify which wad you wish to operate upon. The main DOOM IWAD
  297. file is always called "DOOM" and the handles "PATCHES", "TEXTURES",
  298. "SPRITES" and "FLOORS" are all reserved, do not attempt to load a new
  299. PWAD with these handle names otherwise you will not be able to access
  300. the loaded PWAD.
  301.  
  302. EXAMPLE - Load a level, and modify a patch and save the new PWAD
  303.  
  304. LDW E1M1 d:\games\doom\mylevel\e1m1.wad
  305.         (Load a Wad file with handle E1M1 from file d:\games\doom...)
  306. LPB E1M1 DOOR2_9 d:\games\doom\mylevel\newdoor.bmp
  307.         (Load a Picture in BMP format into wad E1M1 called DOOR2_9)
  308.         (from a file called d:\games\doom\mylevel\newdoor.bmp)
  309. SDW E1M1 d:\games\doom\mylevel\newgrp.wad
  310.         (Save a Wad file using the internal Wad handle E1M1 to a file)
  311.         (called d:\games\doom\mylevel\newgrp.wad)
  312.  
  313. After the LWB command is executed the new DOOR2_9 patch will appear
  314. in the patch window.
  315.  
  316.  
  317. EXAMPLE - Load a level and copy graphics & level from another PWAD
  318.  
  319. LDW TESTLEV mylevel.wad
  320.         (Load a Wad file with handle TEXTLEV from file d:\games\doom...)
  321. LDW DONOR donorlvl.wad
  322.         (Load a Wad file with handle DONOR from file d:\games\doom...)
  323. COPY AG128_1 TESTLEV
  324.         (Copy patch AG128_1 to the wad called TESTLEV. Note that we)
  325.         (dont need to say where AG128_1 comes from as wacker knows)
  326.         (that we must be talking about the AG128_1 in the patch gallery)
  327. COPY DONOR E1M1 TESTLEV
  328.         (Copy from DONOR the E1M1 object to the wad called TESTLEV)
  329. COPY DONOR BCRATEM1 TESTLEV DOOR2_4
  330.         (Copy from DONOR the BCRATEM1 object to the wad called TESTLEV)
  331.         (and rename it to DOOR2_4, this will also change the patch)
  332.         (gallery entry DOOR2_4 to be the same as BCRATEM1)
  333. SDW TESTLEV newlevel.wad
  334.         (Finally save out our modified wad TESTLEV to a file called)
  335.         (newlevel.wad)
  336.  
  337.  
  338.  
  339. ---------------------------------------------------------------------
  340.  
  341.  
  342. Picture Gallery
  343. ---------------
  344.  
  345. The picture gallery holds three picture lists: PATCHES, SPRITES & GRAPHICS
  346. the same command set applies to all picture lists. i.e You can use any
  347. graphic for inclusion in a texture. The following keys will swap
  348. between lists at any time:
  349.  
  350. F5  - Patch list
  351. F6  - Sprite list
  352. F7  - Graphics list
  353.  
  354. Once in a particular list the following commands apply:
  355.  
  356. I                  - Give information about the displayed picture
  357. F                  - Find a picture name       /* Not Implemented */
  358. HOME               - Display last picture in the selected gallery
  359. END                - Display first picture in the selected gallery
  360. PAGE UP            - Jump down the selected picture list
  361. PAGE DOWN          - Jump up the selected picture list
  362. UP/LEFT CURSOR     - Move to the next picture in the selected list
  363. DOWN/RIGHT CURSOR  - Move to the next picture in the selected list
  364.  
  365. All of the above functions are accessable via the mouse interface, by
  366. clicking on the buttons under the mouse window. To dismiss the info
  367. window press any mouse button.
  368.  
  369. You can pick up patches/sprites & graphics in this version and drop
  370. them onto the texture window. See the texture gallery description
  371. for details on how to build and maipulate textures.
  372.  
  373. To pick up a picture, first position the cursor over the picture and
  374. then press and hold the left mouse button. You can then drag your
  375. picture around the screen. If you dont wish to do anything with it
  376. then release the mouse button making sure that the picture is NOT
  377. positioned over the texture, wacker will assume that if you drop
  378. a patch on any area other then a textures then you wanted to discard
  379. it. If you wish your patch to be added to the texture then position it
  380. where you want it to be placed and then release the mouse button and
  381. it will then be added to the texture. Fine positioning of the patch
  382. can be achieved using the cursor keys whilst the mouse button is
  383. kept pressed.
  384.  
  385.  
  386.  
  387. Texture Gallery
  388. -------------
  389.  
  390. I                  - Give information about the displayed texture
  391.                      While in this mode LEFT,RIGHT ARROW move UP/DOWN the
  392.                      list of patch descriptors that make the texture. Pressing
  393.                      the return key will cause the Patch Gallery to display
  394.                      the patch for that descriptor. Press ESC to exit.
  395.                      For mouse based operation:
  396.                      Left button   = Previous patch entry
  397.                      Right button  = Next patch entry
  398.                      Centre button = Display patch in patch gallery
  399.                      Left+Right    = Close window
  400.  
  401.  
  402. S                  - Step throught the drawing of a patch, each time you press
  403.                      the 's' key then next patch.
  404.  
  405. F                  - Find a patch name  /* Not implemented in this vesion */
  406. HOME               - Display last patch
  407. END                - Display first patch
  408. PAGE UP            - Jump down the patch list
  409. PAGE DOWN          - Jump up the patch list
  410. UP/LEFT CURSOR     - Move to the next patch in the alphabetical list
  411. DOWN/RIGHT CURSOR  - Move to the next patch in the alphabetical list
  412.  
  413. Again as with the picture gallery all the above functions are available via
  414. the button bar.
  415.  
  416.  
  417. Making NEW textures
  418. ------------------- 
  419.  
  420. Completely new textures can also be created using the CREATE command
  421. from the command window:
  422.  
  423. CREATE TEXTURE <name> <width> <height>
  424.  
  425. for example
  426.  
  427. CREATE TEXTURE STARTAN4 128 128
  428.  
  429. will make a new texture called startan4 which is 128x128. The texture
  430. gallery will then display a blank box for you to build your texture in.
  431. When textures are drawn to the screen a white box is first drawn to show
  432. the bounding area of the texture. On some textures this may still be
  433. partially visible. It is not saved as part of the texture.
  434.  
  435. NOTE - Texture widths MUST be a binary power of 2 i.e
  436.        2,4,8,16,32,64,128,256. This is a limitation of the DooM engine.
  437.        If you ignore this advice then your textures wont draw properly.
  438.  
  439. You can then use the drag and drop method to build your textures as
  440. described in the picture gallery section.
  441.  
  442. See below for details on how to change the drawing priority of a patch
  443. unsing the FRONT/BACK buttons.
  444.  
  445.  
  446. Modifiying existing textures
  447. ----------------------------
  448.  
  449. To move a patch within a texture you first position the cursor over the
  450. patch you wish to move and then press and hold the left mouse button
  451. to drag it around. If you wish to delete the patch then just move it
  452. out of the patch window and drop it. When you have re-positioned your
  453. patch release the mouse button to drop it. As with the patch drag and
  454. drop the cursor keys may be used adjust the position accurately.
  455.  
  456. If patches are covered or it is awkward to see where one patch starts and
  457. another ends you can use the STEP button to make things easier as you
  458. can only pickup those patches that are visible.
  459.  
  460. If you wish to alter the way in which a texture is drawn i.e move a patch
  461. to the back or the front then use the front/back buttons. Click on FRONT
  462. or BACK then click on the patch you wish to move. If you wish to cancel
  463. the order then click on a part of the screen outside the texture. Wacker
  464. will take the very next mouse click after selecting FRONT/BACK as being
  465. the front/back opertation. Once you have clicked on FRONT or BACK then
  466. ALL other operations are suspended until you have clicked on an area of
  467. the screen.
  468.  
  469. When textures are drawn to the screen a white box is first drawn to show
  470. the bounding area of the texture. On some textures this may still be
  471. partially visible. It is not saved as part of the texture.
  472.  
  473. Handy Tip:
  474.  
  475. Its hard on some textures to see where one patch starts and another ends
  476. so put the STEP button to good use. You can only modify the patches that
  477. you can see in the texture window. If you have a patch stuck at the back
  478. that you want to the front you can either BACK all the other patches OR
  479. press STEP until your patch appears then click FRONT and your patch and
  480. the texture will then be re-drawn with the patch at the front.
  481.  
  482.  
  483. Saving out your new textures
  484. ----------------------------
  485.  
  486. Once you have modified the textures and wish to save out your new or
  487. modified textures you must make sure that the PNAMES object is present
  488. in the WAD as this will trigger WACKER to create PNAMES,TEXTURE1 and
  489. TEXTURE2 in your PWAD, you can do this with :
  490.  
  491. CREATE <yourwad> PNAMES
  492. SDW <yourwad> <somefile.wad>
  493.  
  494. IMPORTANT- If you have modified patches you must make sure these have
  495. been copied to the PWAD as well so all required data is saved. In later
  496. WACKER versions this will be done automagically. Ideally your patches
  497. should be contained with P_START & P_END markers but wacker will not
  498. complain if they are not. DONT under any circumstances place modified
  499. SPRITES or GRAPHICS between P_START/END otherwise Doom will fail to
  500. recognose the patches when you load your pwad.
  501.  
  502.  
  503. BUT BUT BUT
  504. -----------
  505.  
  506. The above is ONLY true IF the patches are used in TEXTURE1 or TEXTURE2.
  507. So if you have a group of patches that are NOT used in textures and
  508. are not bracketed by P_START & P_END then they will NOT be recognised
  509. as patches. So it is STILL ADVISABLE to enclose your patches within
  510. P_START & P_END.
  511.  
  512.     How to enclose with P_START & P_END
  513.     -----------------------------------
  514.     For Wacker to recognise patches when loading a PWAD they must
  515.     be enclosed in P_START P_END markers
  516.  
  517.     CREATE mygfx
  518.     CREATE mygfx p_start
  519.     CREATE mygfx p_end
  520.  
  521.     LPB myfgx coke01 front.bmp
  522.     LPB mygfx coke02 back.bmp
  523.     LPB mygfx coke03 side.bmp
  524.     MOVE mygfx p_end coke03
  525.  
  526.     The move command makes sure that the patches are within the markers
  527.     as when you load a new patch it is always tagged onto the end of a
  528.     WAD.
  529.  
  530. IMPORTANT2 - If you wish to load your new textures into Deu as a PWAD
  531. you must do the following to overcome a feature in Deu that causes it
  532. to Barf on texture pwads. When Deu loads textures & gfx from an external
  533. PWAD it reads an entire 64K chunk rather then only the data is requires.
  534. This means it will often try to read past the end of the file and hence
  535. Barrrrf. All you need to do is make sure that there is a least 64K of
  536. data after your patches. You can do this in the following way:
  537.  
  538. Load a raw object onto the end of your PWAD using the LOR command
  539. this object can be absolutly anything you like. Give it a name that
  540. doesn't occur in the doom IWAD such as CALVIN or HOBBES. Just make
  541. sure it is around the 64K mark.
  542.  
  543.  
  544. ---------------------------------------------------------------------
  545.  
  546.  
  547. Command Window
  548. --------------
  549.  
  550. This window is the command line interface to wacker, the following
  551. commands are currently supported:
  552.  
  553. BATCH    - Redirect command window input from batch file
  554. COPY     - Copy object from pwad->pwad
  555. CREATE   - Create a new WAD,ENTRY or TEXTURE
  556. DEL      - Delete objects
  557. DISP     - Force patch/texture window to display object
  558. FILE     - Enable/Disable command line logging to a file 
  559. HELP     - Display command list
  560. LDW      - Load a PWAD/IWAD into memory
  561. LIST     - List details of pwad/patch/texture
  562. LOB      - Load/patch a WAD object from windows BMP file
  563. LOR      - Load/patch a WAD object from RAW format file
  564. LPB      - Load a picture from a windows BMP file
  565. LPR      - Load a picture from a raw binary file
  566. LTB      - Load a Texture from a BMP file (creates a patch)
  567. MOVE     - Move an object within a WAD
  568. MCOPY    - Multiple copy from WAD to WAD or gallery
  569. SDW      - Save a PWAD/IWAD to disk
  570. SOB      - Save a picture format object to a windows BMP file
  571. SOR      - Save an WAD object to a raw binary file
  572. SPB      - Save a picture to a windows BMP file
  573. SPR      - Save a picture to a raw binary file
  574.  
  575. Many of the commands use an argument called PICTURE this agument can be
  576. any loaded patch,sprite or graphic object from
  577.  
  578. Some commands do take a while to exectue, be patient. It does take time to
  579. copy all of the patches from the gallery to a WAD. The longest wait is
  580. if you copy then entire patch/sprite list to a WAD then delete the WAD as
  581. WACKER must rebuild the patch list from the original wad.
  582.  
  583.  
  584. Command Detail
  585. --------------
  586.  
  587.  
  588. BATCH <filename> [STEP]
  589.  
  590. Take command line input from the given filename, the file should be
  591. a text file with identical format to that of the keyboard command
  592. line. The FILE command can be used to generate batch files that may
  593. then be edited and used. If the optional STEP parameter is given
  594. then the user will be promped to run each command line and given
  595. then option of exiting batch mode.
  596.  
  597. ---------------------------------------------------------------------
  598.  
  599. CREATE <handle|TEXTURE> [name] [width] [height]
  600.  
  601. Create will allow blank wad objects to be created such as an empty
  602. WAD, an empty entry or a new texture.
  603.  
  604. CREATE <handle>                - Make a new empty WAD
  605. CREATE <handle> <object>       - Make a new wad object (i.e PNAMES)
  606. CREATE TEXTURE <name> <width> <height> - Make a new texture
  607.  
  608. ---------------------------------------------------------------------
  609.  
  610. COPY [handle] <obj> <handle|PATCHES|SPRITES> [obj]
  611.  
  612. Copy is used to copy individual objects between WAD files or within
  613. a WAD file. If the final agument is ommited then the object is
  614. copied with the same name.
  615. Additionally copy may be used to copy ANY graphic object into
  616. the picture gallery. This is done using the Pseduo handles 'PATCHES',
  617. or SPRITES for example:
  618.        
  619.        COPY <handle> <object> PATCHES [object]
  620.  
  621. Any picture object that is copied in the picture gallery can then
  622. be used within a texture. Yes this does mean you can put the DooM
  623. logo in a texture or a Spider demon.
  624.  
  625. Copy can also be used to copy any picture object to a WAD, this can be
  626. done by omitting the handle, then 1st argument must the the name of a
  627. picture in one of the galleries. i.e
  628.  
  629.        COPY AG128_1 MYWAD
  630.        
  631. Will copy the AG128_1 patch into a WAD called MYWAD which must already
  632. exist. The 1st argument can be PATCH|SPRITE|GRAPHIC. The pseudo handles
  633. may still be used for this type of copy to clone a patch.
  634.  
  635. ---------------------------------------------------------------------
  636.  
  637. DEL <handle|picture|texture> [object|ExMx|patch|floor|sprites|FORCE] [obj]
  638.  
  639. This command can be used to delete almost any loaded object or group
  640. of objects.
  641.  
  642.         DEL <handle>                  - Delete handle & contents
  643.         DEL <handle> <ExMx>           - Deletes ExMx level from handle
  644.         DEL <handle> <ExMx> <object>  - Delete object of level
  645.         DEL <handle> <object>         - Delete object of handle
  646.         DEL <object>                  - Delete a patch|texture
  647.  
  648. If no handle is given then the object MUST be a patch or a texture.
  649. The patch or texture will be deleted from the texture list but NOT
  650. from the PWAD it was loaded into. If you wish to delete patch AND
  651. wad entry then used DEL <handle> <object>. When a patch is deleted
  652. WACKER will search ALL other loaded PWADS for a replacement and use
  653. that to replace the deleted patch, if no replacement is found then
  654. that patch is erased from all texture entries, if any particular
  655. texture has no patches left in its description then it will also be
  656. deleted. When only the <handle> is used then the entire PWAD is
  657. erased. The PATCHES, SPRITES, GRAPHICS and TEXTURES pseudo handles
  658. can be used in the delete, remember that deleting any picture may also
  659. delete textures by association. If you delete the entire patch list
  660. you WILL lose all of the textures. BUT if you load a PWAD with its own
  661. patches and you then delete all of the doom patches you will just be
  662. left with the textures that can be built from the new PWAD.
  663.  
  664. When you attempt to delete a single object from a picture gallery
  665. WACKER will attempt to find a replacement for that picture with the
  666. same name from a different WAD that is loaded into memory. For example
  667. if you patch AG128_1 from a PWAD and then type DEL AG128_1 the original
  668. DOOM AG128_1 will be put back into the gallery, type DEL AG128_1 again
  669. and the new AG128_1 will re-appear. If you wish to delete a picture
  670. without the auto-replace feature then do DEL AG128_1 FORCE and WACKER
  671. will not attempt to find a replacement. The FORCE agrument is only valid
  672. for PICTURE deletions. An alternate way is to delete the picture from
  673. the WAD rather than the gallery as the galleries hold separate lists
  674. from the WADS.
  675.  
  676. For example:
  677.  
  678.                 DEL PATCHES          - Delete ALL patches from the patch
  679.                                gallery. But not from wads
  680.                 DEL TEXUTRES         - Delete ALL textures from the texture
  681.                                gallery.
  682.                 DEL WIBBLE           - Deletes a loaded WAD called WIBBLE
  683.  
  684.                 DEL WIBBLE PATCHES   - Deletes all patch entries from WIBBLE
  685.                                that lie between P_START & P_END.
  686.                                   
  687.                 DEL WIBBLE FLOORS    - Deletes all floor entries from WIBBLE
  688.                                that lie between F_START & F_END.
  689.  
  690.                 DEL WIBBLE SPRITES   - Deletes all sprite entries from WIBBLE
  691.                                that lie between S_START & S_END.
  692.                                   
  693.                 DEL WIBBLE E1M1      - Delete level E1M1 from wibble
  694.                 DEL WIBBLE ENDOOM    - Delete the ENDOOM object from WIBBLE
  695.                 DEL AASTINKY         - Delete the AASTINKY texture from the
  696.                                texture gallery.
  697.                 DEL AG128_1 [FORCE]  - Delete the AG128_1 patch from the
  698.                                patch gallery.
  699.  
  700. ---------------------------------------------------------------------
  701.  
  702. DISP <picture|texture|P|T> [picture|texture]
  703.  
  704. This command will force the picture or texture galleries to display a
  705. particular image. If a partial name is given then DISP will match
  706. it against the gallery contents. The P & T operators force disp to
  707. only match P-Pictures or T-textures
  708.  
  709.         DISP T STAR  - Would display the 1st STARTAN texture
  710.         DISP A       - Texture and Patch windows display 1st entry
  711.                        begining with 'A'
  712.         DISP AG128_1 - Display the AG128_1 patch
  713.  
  714. ---------------------------------------------------------------------
  715.  
  716. FILE <filename|OFF|CLOSE>
  717.  
  718. Enable/Disable command line logging to a text file. This command
  719. is handy for saving repetative functions and using the BATCH
  720. command to automate things. If a filename is given then the file
  721. is opened, if a file is already opened then the old file is closed.
  722. If you wish to stop logging then use FILE CLOSE.
  723.                           
  724. ---------------------------------------------------------------------
  725.  
  726. HELP
  727.  
  728. This will display a list of commands available within the command
  729. window.
  730.  
  731. ---------------------------------------------------------------------
  732.  
  733. LDW <handle> <filename>
  734.  
  735. Load a WAD into memory, the WAD can be an IWAD or a PWAD. A handle
  736. name must be given. Do not choose a handle that is the same as a
  737. patch or texture name or this may cause some commands to function
  738. strangely.
  739.  
  740. The following handle names are reserved, do not used them:
  741.  
  742. DOOM,PATCHES,TEXTURES,SPRITES,FLOORS
  743.  
  744. You have been warned, WACKER will not stop you but you may find
  745. that a lot of commands will fail to operate with these names.
  746.  
  747. ---------------------------------------------------------------------
  748.  
  749. LIST <handle|picture|texture|PATCHES|SPRITES|GRAPHICS|TEXTURES>
  750.      [start ojbect] [filename]
  751.  
  752. Dump information to screen or file about an object. This command
  753. has several modes of operation. If you wish to direct the
  754. output to a file then give a filename at the end. If wacker is
  755. unsure if the agrument is a start object or a file it will ask.
  756.  
  757. If a handle is given then the directory of the WAD is printed
  758. to the screen/file. If a 2nd argument is given then wacker will
  759. attempt to use this as a search key, and will start listing the
  760. WAD from the 1st match of the search key. This is handy for listing
  761. large WADs, for example:
  762.  
  763.     LIST DOOM P_START    - List patches within doom (no Xref)
  764.     
  765. It would be better to use the following to list the patches as
  766. it will also generate a cross-reference to the used textures.
  767.  
  768.     LIST PATCHES
  769.  
  770. Similarly LIST TEXTURES will display alll loaded texures and a
  771. cross reference to the patches contained in each texture.
  772.  
  773. If just the name of a picture or texture is given then information is
  774. displayed about that object. For patches the command will also
  775. display a list of textures that the picture is used in. For textures
  776. it will display the list of pictures for that texture.
  777.  
  778. ---------------------------------------------------------------------
  779.  
  780. LOB <handle> <object> [object] <filename>
  781.  
  782. Load an DooM picture format object from a windows BMP format file.
  783. The object name can be an existing or new object. If the object
  784. exists then it is modified otherwise it will be created. If the
  785. second object argument is given then and a new object is created
  786. then it will be placed after the object. This is handy for loading
  787. new sprites into an IWAD between the S_START/END markers. If no
  788. second argument is given the object is tagged onto the end of
  789. the WAD.
  790.  
  791. You can use this to replace sprites/misc graphics/patches.
  792.  
  793. (See notes about importing external bitmaps)
  794.  
  795. ---------------------------------------------------------------------
  796.  
  797. LOR <handle> <object> [object] <filename>
  798.  
  799. Load an DooM picture format object from a Raw binary format file.
  800. The object name can be an existing or new object. If the object
  801. exists then it is modified otherwise it will be created. If the
  802. second object argument is given then and a new object is created
  803. then it will be placed after the object. This is handy for loading
  804. new sprites into an IWAD between the S_START/END markers. If no
  805. second argument is given the object is tagged onto the end of
  806. the WAD.
  807.  
  808. You can use this to replace anything.
  809.  
  810. ---------------------------------------------------------------------
  811.  
  812. LPB <handle> <patch> <filename> [PATCH|SPRITE]
  813.  
  814. Load a new picture into a WAD file from a windows BMP format
  815. file. If the object exists then it replaces the object otherwise
  816. a NEW picture will be created. Existing pictures will be replaced
  817. in the relevant list but any new object will always be created in
  818. the patch list unless the optional PATCH|SPRITE] argument is used
  819. to explicitly specify the list to load the new object into.
  820.  
  821. (See notes about importing external bitmaps)
  822.  
  823. ---------------------------------------------------------------------
  824.  
  825. LPR <handle> <patch> <filename> [PATCH|SPRITE]
  826.  
  827. Load a new picture into a WAD file from a raw binary format
  828. file. If the object exists then it replaces the object otherwise
  829. a NEW patch will be created by default unless the optional PATCH|
  830. SPRITE] argument is used to explicitly specify the list to load
  831. the new object into.
  832.  
  833. ---------------------------------------------------------------------
  834.  
  835. LTB <handle> <texture name> <filename> [width] [height]
  836.  
  837. This command automates the process of creating textures. Given
  838. a BMP file it will load the file into memory as a patch called
  839. <texture name> and will then create a NEW texture with the same
  840. name as the patch. The patch is always positioned at the top
  841. left corner of the new texture. If height and with are not given
  842. then the texture will be created the same size as the patch. Read
  843. the creating new textures section for a warning on texture sizes
  844. i.e make your bitmap a binary power of 2 in width or set the height
  845. and width manually.
  846.  
  847. The handle must be a loaded WAD as the new patch must be associated
  848. with the wad.
  849.  
  850. The new patch that is created is built into the PATCH list unless
  851. is is an already existing name then it will be replaced with the
  852. new bitmap for the texture. Be careful with your naming.
  853.  
  854. (See notes about importing external bitmaps)
  855.  
  856. ---------------------------------------------------------------------
  857.  
  858. MCOPY <handle|PATCHES|SPRITES> [start_obj] [end_obj]
  859.                                               <handle|PATCHES|SPRITES>
  860.  
  861. Copy is used to copy multiple objects between WAD files or between
  862. a WAD and a gallery. If the copy is WAD->WAD then all ojbects from
  863. and including <start_obj> to <end_obj> are copied. If the destination
  864. is a gallery then only non-zero picture format objects will be copied.
  865.  
  866. You can use this to copy all of the active patches to a WAD for saving,
  867. when copied in this way the patches will be placed between the relevant
  868. START/END markers, these will be created in the WAD if they dont exist.
  869.  
  870. If the start and end objects are omitted then the entire WAD is copied
  871. across to the destination handle.
  872.        
  873. ---------------------------------------------------------------------
  874.  
  875. MOVE <handle> <entry> <dest_entry>
  876.  
  877. This will move an object within a WAD file, you can use it to
  878. reposition objects. It will move the entry to be after dest_entry
  879. in the directory list. 
  880.  
  881. ---------------------------------------------------------------------
  882.  
  883. SDW <handle> <filename> [PWAD|IWAD]
  884.  
  885. Save a memory resident WAD file to either a PWAD or an IWAD, if the
  886. IWAD/PWAD argument is missing the file is saved as a PWAD by default.
  887.  
  888. DO NOT save you pwad to any file name that is already open/loaded.
  889. When WACKER loads a PWAD with LDW it leaves the file handles
  890. open to make access faster. The last time I tried it it junked
  891. loaded file.
  892.  
  893. ---------------------------------------------------------------------
  894.  
  895. SOB <handle> <object> <filename>
  896.  
  897. This command will attempt to save the given object as a windows BMP
  898. format file. The object name given must be a DOOM picture format
  899. object. WACKER attempts to verify the object by checking the header
  900. of the object as if it were a picture and verifying that the header
  901. parameters are within some set limits.
  902.  
  903. ---------------------------------------------------------------------
  904.  
  905. SOR <handle> <object> <filename>
  906.  
  907. Save an object from within a WAD to a binary file in raw binary
  908. format file.
  909.  
  910. ---------------------------------------------------------------------
  911.  
  912. SPB <picture> <filename>
  913.  
  914. Save a entry from the picture gallery to a windows format BMP file,
  915. the handle is not needed as this is provided by the association
  916. of picture gallery.
  917.  
  918. ---------------------------------------------------------------------
  919.  
  920. SPR <picture> <filename>
  921.  
  922. Save a entry from the picture gallery to a raw binary file,
  923. the handle is not needed as this is provided by the association
  924. of picture list.
  925.  
  926. ---------------------------------------------------------------------
  927.  
  928. Notes about importation of external bitmaps in BMP files:
  929.  
  930.     The 2nd object parameter can be used to force WACKER to store a
  931.     resource at a particular point in the PWAD i.e within S_START/END.
  932.     If the operation replaces an object then this parameter is ignored 
  933.  
  934.     When WACKER imports a graphic file it will convert the palette of
  935.     your file to an equivalent colour on the doom palette. It is not
  936.     always possible for WACKER to exactly match the colours, it will
  937.     do the best job it can and find the closest match. If you wish to
  938.     have transparent colours in your patches then use the following
  939.     colour value:
  940.  
  941.         Red=0 Green=255 Blue=255
  942.  
  943.     Once imported into wacker the cyan transparent regions will vanish
  944.     and be converted to transparent areas. I have found that corel
  945.     draw seems to do some gamma correction on images and so everything
  946.     comes out a little darker.
  947.  
  948. ---------------------------------------------------------------------
  949. The END