home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-07-07 | 299.5 KB | 8,810 lines |
-
- Hi everybody!
-
- Welcome to v1.2 of The UnOfficial Duke Nukem 3D Editing FAQ!
-
- This is a quick update to fix some embarassing typos and problems
- and get you some more how-tos. As soon as my current project is
- finished (a week or two), I'll bring out v1.3 :)
-
- Since somebody is currently working on a new and better museum, I
- haven't touched it. It's still included in UUencoded format at the
- end of this message.
-
- Improvements to be found in here:
-
- * More tiles explained (we're up to 347 and it's a slow,
- ugly job).
-
- * More how-tos and info, as well as some general corrections.
-
- * Looots of typos fixed (thanks, Christoph!).
-
- All chapters which changed since the last release of the FAQ are
- marked with '*' in the table of contents. I have stopped marking
- the other chapters with things like '[' or '(' as it simply
- became too much work.
-
- Planned improvements:
-
- * Explain _all_ tiles and sounds in the reference section. I
- still haven't gotten around to doing them all.
-
- * Add more info on the utilities for Duke3D (like
- RTSMAKER.EXE).
-
- * Write more in chapter 8 (Programming the .CON files).
-
- * List of sector effectors.
-
- * Improve The Museum.
-
- * As always, more how-tos!
-
- I've received quite a lot of feedback - please keep it up! I'm
- also very interested in any ftp or www sites as well as any maps.
-
- Here some questions for you:
-
- * Would it be a Terrible Thing if I kept posting both parts
- of the FAQ? Since part II is The Museum, it's UUENCODED
- and thus a binary - it might be bad form posting this on a
- discussion group.
- However, I don't have access to alt.games.duke3d.editing,
- and neither do a lot of other people...
-
- * Anybody who can send me info, tips and tricks to be
- included here? All ideas, tricks, etc which make it into
- the FAQ will, of course, be fully attributed.
-
- * Anybody started some serious .CON file hacking or has any
- other CON-info I could put into here?
-
- * I'd especially appreciate it if anybody could point out
- errors in this FAQ. I'm even interested in typos :)
-
- * Anybody who can think of questions which should be
- included in this FAQ?
-
- * Lots of open questions in the FAQ - the most pressing ones
- IMO are marked '##'.
-
- The FAQ will be posted monthly (or bi-weekly, if you prefere) to
- alt.games.duke3d.
-
- I can't post it in ZIPped format, as I'll get a deluge of mail
- from beginners asking "How do I decode your file?". Since this
- FAQ is aimed at beginners, it wouldn't be very fair...
-
- Ciao,
- Klaus
-
- --- cut here ---
-
- HHHHHH HH HH HH .dHHb. .dH .dH db db HH
- HH HH HH HH dhP""YHb dH" dH" YP YP HH
- HH HHHb. .db. HH HH HHb. HH HH HHHH HHHH dHHb dHb. HH
- HH HH"Hb HP..Hb HH HH HH"Hb HH HH HH HH HH dP" HH 7db HH
- HH HH HH HH"""' YHb..dHP HH HH YHb..dHP HH HH HH Yb. HH HH"HH HH
- HH HH HH "YHP "YHHP" HH HH "YHHP" HH HH HH YHHP HH "YHHH HH
-
- __________ ___ ___ ___ ______ __________
- | `\ | | | | | | / /~| |
- `| .. `\|.::| |:::| |::.|/.. /~ | -------'
- | HHb..:::dHHHH HHHHH |HHHHHb:Y.. | `"""""|
- | .HHH:::dHHHHHH HHHHH |HHHHHHHb::::|. ______|
- ,| .:|HHHxHHHHHHHHHbodHHHHP |HHHHHHHHbn::|:::`------.
- |______HHHHHHHP "YHHHHHHHHP |HHH| `HHHHHbHHb:::::...|
- ____ ~~~~~~ `~~"~~~ ~~~ ~~~~~~ ~~~~~~~~~~
- |.:::`:::HHHH:HHH:::HHH:HHb::dHHP:HHHHHHHH:HHb::::,~~|
- |:::dHb::HHHH:HHH:::HHH:HHHbdHHP::HHHHHHHH:HHHb:::/::|
- |dHHHHb:HHHH:HHH:::HHH:HHHHHHP:::HHH....::HHHHb:/'::|
- dHHHHHHMHHHH:HHH:::HHH:HHHHHHX:::HHHHHHH::HHHHHXHb::|
- HHH"YHHHHHHH:HHH:::HHH:HHHHHHHb::HHH""""::HHHXHHHXHb|
- HHHH:::YHMMM!:YHHHMHHHP:HHH:"YHHb:HHHHHHHH:HHH:YHP:HHH
- HHHH:::::HHHH::"YHHHY"::HHH:::YHHbHHHHHHHH:HHH::Y::HHH
- mmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmm..
- HHHHHHHHHHHHHHHHHHHHHHHHb HHHHHHHHHHHHHHHHHHHHHHHHHn
- """" XHHHHHHHHHR ^HHHHHHHHHHH"""YHHHHHHHHHHb.
- HHHHHHHHHHHHHHHHHHHP HHHHHHHHHHH HHHHHHHHHHHH
- HHHHHHHHHHHHHHHHHHHb HHHHHHHHHHH HHHHHHHHHHHH
- mmmm XHHHHHHHHHH mHHHHHHHHHHHmmmdHHHHHHHHHHP'
- HHHHHHHHHHHHHHHHHHHHHHHHP HHHHHHHHHHHHHHHHHHHHHHHHP'
- """"""""""""""""""""""" """""""""""""""""""""""
-
- HHHHHH HH db HH db HHHHHHHH dHH .dHHb.
- HH HH YP HH YP HH dHHH dHP""YHb
- HHHH .dHHH HHHH HHHb. .db. HHHHH dHPHH HH HH
- HH dH' HH HH HH HH HH"Hb dP"Hb HH dHP HH HH Yb HH
- HH Yb. HH HH YHb. HH HH HH Yb HH HH dHHHHHH YHb.YbHP
- HHHHHH "YHHH HH "YH HH HH HH "YHH HH dHP HH "YHHHH"
- HH Yb
- Yb dP
- "B"
-
- Release v1.2
- Last Updated: 28th June 1996
-
- Written by
- Klaus Breuer (sz0759@rzmail.uni-erlangen.de)
-
-
-
- Contents
-
-
-
- Chapter 1 Happy lawyer dept.
- 1.1 Disclaimer
- 1.2 Trademark information
- 1.3 Copyright notice
-
- Chapter 2 Introduction
- 2.1 *A word from Klaus Breuer*
- 2.1.1 *Printing the FAQ*
- 2.1.2 *Flames*
- 2.2 Intended Audience
- 2.3 *About the "UnOfficial" DUKE NUKEM 3D EDITING
- FAQ*
- 2.4 Getting the "UnOfficial" DN3DE FAQ
- 2.5 *Adding to the FAQ*
- 2.6 *The DN3D EDITING mailing list*
- 2.7 The DN3D EDITING ftp site
- 2.8 *WWW sites*
- 2.9 IRC
- 2.10 *Acknowledgments*
- 2.11 Accurate information
- 2.12 Help with new levels
-
- Chapter 3 Preliminary information
- 3.1 Intended audience for this chapter
- 3.2 The basics
- 3.2.1 *Differences between the Build and DOOM
- engines*
- 3.2.2 Useful cheats for testing levels
- 3.2.3 What a map consists of
- 3.2.3.1 Sectors
- 3.2.3.2 *Walls*
- 3.2.3.3 Textures
- 3.2.3.4 Sprites
-
- Chapter 4 Planning and designing a level
- 4.1 *Installing BUILD*
- 4.2 *Before starting*
- 4.3 Pros and cons of using real-world maps
- 4.3.1 *Advantages*
- 4.3.2 Disadvantages
- 4.4 Using DOOM maps
- 4.5 Designing the level
- 4.5.1 Level types
- 4.5.1.1 *Single player*
- 4.5.1.2 Co-op
- 4.5.1.3 *DukeMatch*
- 4.5.1.4 *My room/flat/dorm/house*
- 4.5.2 Choosing a level type
- 4.5.3 *Random tips and thoughts*
- 4.5.3.1 *Working with Build*
- 4.5.3.2 *Do*
- 4.5.3.3 *Don't*
- 4.5.3.4 *General tips*
- 4.5.3.5 *Posting your level*
- 4.5.4 Typical mistakes to avoid
- 4.5.4.1 Crossed lines
- 4.5.4.2 Overlaying lines
- 4.5.4.3 Hall Of Mirrors
- 4.5.4.4 Door side tracks
- 4.5.4.5 *Unaligned Textures*
- 4.5.4.6 Missing Player Starts
- 4.6 DukeMatch level design
- 4.6.1 Monster placement
- 4.6.2 Weapon placement
- 4.6.2.1 Power weapons
- 4.6.2.2 Starting-point weapons
- 4.6.3 Ammo placement
- 4.6.3.1 Amount and location
- 4.6.3.2 Ammo Quantity Types
- 4.6.4 Health placement
- 4.6.5 Architectures
- 4.6.5.1 Large, open areas
- 4.6.5.2 Long, wide passages
- 4.6.5.3 Nooks 'n crannies
- 4.6.5.4 Balconies, bridges and towers
- 4.6.5.5 Fortresses
- 4.6.5.6 Obstacles
- 4.6.5.7 Sniper spots
- 4.7 *Once your level is done*
-
- Chapter 5 A walkthrough to creating a simple level
- 5.1 Planning
- 5.2 Getting ready
- 5.3 Creating a new map
- 5.4 The 2D screen
- 5.4.1 Map
- 5.4.2 *Message window*
- 5.4.3 Data window
- 5.4.4 Info window
- 5.5 Moving about
- 5.6 *Creating a room*
- 5.7 *3D mode*
- 5.8 Raising the roof
- 5.9 Textures
- 5.9.1 The floor
- 5.9.2 The roof
- 5.9.3 Flying about
- 5.9.4 The walls
- 5.10 Building the house
- 5.10.1 The house sector
- 5.10.2 Fixing the house sector
- 5.10.2.1 The carpet floor
- 5.10.2.2 Nice walls
- 5.10.2.3 Finally, the roof
- 5.10.3 Saving your work
- 5.10.4 Building a doorway
- 5.10.5 Adding a window
- 5.10.6 Glass
- 5.10.7 The sloped roof
- 5.11 Trying it out
- 5.12 Decorations
- 5.12.1 The flower pot
- 5.12.2 The picture
- 5.12.3 A hanging lamp
- 5.12.4 The burning barrel
- 5.13 *The enemy appears*
- 5.14 The other players
- 5.15 Taking it from here
- Chapter 6 The BUILD Editor
- 6.1 2D Mode
- 6.1.1 The Screen
- 6.1.1.1 The map
- 6.1.1.2 *The Message window*
- 6.1.1.3 The Data window
- 6.1.1.4 The Info window
- 6.1.2 The mouse
- 6.1.2.1 Move
- 6.1.2.2 Left button
- 6.1.2.3 Right button
- 6.1.3 The keyboard
- 6.1.3.1 Esc
- 6.1.3.2 Cursor keys
- 6.1.3.3 NumIns and NumDel
- 6.1.3.4 Spacebar
- 6.1.3.5 NumEnter
- 6.1.3.6 RightShift
- 6.1.3.7 Control-RightShift
- 6.1.3.8 RightAlt
- 6.1.3.9 Ins
- 6.1.3.10 Del
- 6.1.3.11 RightControl-Del
- 6.1.3.12 A and Z
- 6.1.3.13 G
- 6.1.3.14 L
- 6.1.3.15 J
- 6.1.3.16 Alt-S
- 6.1.3.17 S
- 6.1.3.18 B
- 6.1.3.19 C
- 6.1.3.20 T
- 6.1.3.21 H
- 6.1.3.22 Alt-T
- 6.1.3.23 Alt-H
- 6.1.3.24 E
- 6.1.3.25 < and >
- 6.1.3.26 Shift-< and Shift->
- 6.1.3.27 [ ]
- 6.1.3.28 '-M
- 6.1.3.29 '-3
- 6.1.3.30 F1
- 6.1.3.31 F2
- 6.1.3.32 F3
- 6.1.3.33 F4
- 6.1.3.34 F5
- 6.1.3.35 F6
- 6.1.3.36 F7
- 6.1.3.37 F8
- 6.1.3.38 F9
- 6.1.3.39 F10
- 6.1.3.40 F11
- 6.1.3.41 F12
- 6.1.3.42 TAB
- 6.1.3.43 Alt-TAB
- 6.1.3.44 ScrollLock
- 6.1.3.45 Ctrl-T
- 6.1.3.46 Enter
- 6.2 3D Mode
- 6.2.1 The screen
- 6.2.2 The mouse
- 6.2.2.1 Move
- 6.2.2.2 Left button
- 6.2.2.3 Right button
- 6.2.3 The keyboard
- 6.2.3.1 Cursor keys
- 6.2.3.2 CapsLock
- 6.2.3.3 PgUp and PgDn
- 6.2.3.4 V
- 6.2.3.5 Alt-V
- 6.2.3.6 NumCursor keys
- 6.2.3.7 Shift-NumCursor keys
- 6.2.3.8 /
- 6.2.3.9 .
- 6.2.3.10 F
- 6.2.3.11 Alt-F
- 6.2.3.12 P
- 6.2.3.13 Ctrl-P
- 6.2.3.14 G
- 6.2.3.15 E
- 6.2.3.16 R
- 6.2.3.17 O
- 6.2.3.18 B
- 6.2.3.19 T
- 6.2.3.20 M
- 6.2.3.21 Shift-M
- 6.2.3.22 1
- 6.2.3.23 2
- 6.2.3.24 H
- 6.2.3.25 TAB
- 6.2.3.26 Enter
- 6.2.3.27 Ctrl-Enter
- 6.2.3.28 Shift-Enter
- 6.2.3.29 Ctrl-Shift-Enter
- 6.2.3.30 '-ENTER
- 6.2.3.31 '-R
- 6.2.3.32 '-D
- 6.2.3.33 '-W
- 6.2.3.34 '-G
- 6.2.3.35 '-Y
- 6.2.3.36 '-T
- 6.2.3.37 -H
- 6.2.3.38 '-S
- 6.2.3.39 '-V
- 6.2.3.40 '-C
- 6.2.3.41 '-Del
- 6.2.3.42 Alt+-
- 6.2.3.43 CtrlAlt+-
- 6.2.3.44 F1
- 6.2.3.45 F2
- 6.2.3.46 F3
- 6.2.3.47 F4
- 6.2.3.48 F5
- 6.2.3.49 F6
- 6.2.3.50 F7
- 6.2.3.51 F8
- 6.2.3.52 F9
- 6.2.3.53 F10
- 6.2.3.54 F11
- 6.2.3.55 F12
-
- Chapter 7 How to...
- 7.1 *Extracting the original maps*
- 7.2 *Abbreviations*
- 7.3 Player starting points
- 7.3.1 Notes
- 7.4 Glass panes
- 7.4.1 Notes
- 7.5 Invisible forcefield
- 7.6 Doorways
- 7.6.1 Notes
- 7.7 Windows
- 7.7.1 *Setup*
- 7.7.2 *Notes*
- 7.8 *Air ducts*
- 7.8.1 *Notes*
- 7.9 Angled surfaces
- 7.9.1 Notes
- 7.10 Secret places
- 7.11 Multiplayer sprites
- 7.12 Level-end button
- 7.12.1 Notes
- 7.13 Level-end sector
- 7.14 Cameras
- 7.14.1 Setup
- 7.14.2 *Notes*
- 7.15 Demo cameras
- 7.15.1 Setup
- 7.15.2 Notes
- 7.16 *User-controlled force fields*
- 7.16.1 *Setup*
- 7.16.2 *Notes*
- 7.17 Blastable walls (user control)
- 7.17.1 Setup
- 7.17.2 Notes
- 7.17.3 Tips
- 7.18 Blastable walls (triggered)
- 7.18.1 Setup
- 7.18.2 Notes
- 7.19 Conveyor Belts
- 7.19.1 Setup
- 7.19.2 Notes
- 7.20 *Mirrors*
- 7.20.1 *Notes*
- 7.21 *Garbage cans*
- 7.21.1 Notes
- 7.22 Revenge of the dancers
- 7.22.1 Notes
- 7.23 Buzzing phones
- 7.24 Light switches
- 7.24.1 Setup
- 7.24.2 Notes
- 7.25 Permanently rotating sector (gears)
- 7.25.1 *Setup*
- 7.25.2 Notes
- 7.26 Doors
- 7.26.1 Standard hinged
- 7.26.1.1 Notes
- 7.26.2 DOOM-type door, remote control
- 7.26.2.1 Setup
- 7.26.2.2 *Notes*
- 7.26.3 DOOM-type door, local control
- 7.26.4 Sliding sideways
- 7.26.4.1 Notes
- 7.26.5 Star Trek door
- 7.26.5.1 *Setup*
- 7.26.5.2 Notes
- 7.26.6 Four-way door
- 7.26.6.1 Notes
- 7.26.7 Clamshell doors
- 7.26.8 Teeth doors
- 7.26.9 Auto-closing doors
- 7.26.10 Switch-controlled doors
- 7.26.10.1 *Notes*
- 7.27 Shrinking sector (remote control)
- 7.27.1 Setup
- 7.27.2 Notes
- 7.28 *Spawning monsters*
- 7.28.1 *Setup*
- 7.28.2 *Notes*
- 7.29 *Difficulty settings*
- 7.30 Automatic cannon
- 7.30.1 Setup
- 7.30.2 Notes
- 7.31 Lethal sectors
- 7.32 Earthquakes
- 7.32.1 Setup
- 7.32.2 Notes
- 7.33 Elevators
- 7.33.1 Setup
- 7.33.2 Notes
- 7.34 Remote-controlled Elevators
- 7.34.1 Setup
- 7.35 Teleporters
- 7.35.1 Setup
- 7.35.2 Notes
- 7.36 Swimming pools
- 7.36.1 Setup
- 7.36.2 *Notes*
- 7.36.3 Tips
- 7.37 The Grapplers
- 7.37.1 Setup
- 7.37.2 Tips
- 7.38 Overlapping sectors
- 7.38.1 Notes
- 7.39 Hiding switches
- 7.40 Bridges and Shelves
- 7.40.1 *Notes*
- 7.41 Minibosses
- 7.41.1 *Notes*
- 7.42 *Crashing car/helicopter*
- 7.42.1 *Notes*
- 7.43 Pulsing lights
- 7.43.1 Setup
- 7.43.2 Notes
- 7.44 Vehicles
- 7.44.1 *Setup*
- 7.44.2 *Notes*
- 7.45 Attacking Vehicles
- 7.45.1 Notes
- 7.46 Two-way Vehicles
- 7.46.1 Setup
- 7.46.2 *Notes*
- 7.47 *Echoing rooms*
- 7.48 Water waves
- 7.48.1 Setup
- 7.48.2 Notes
- 7.49 Engine piston
- 7.49.1 Setup
- 7.49.2 Notes
- 7.50 *Edge walls*
- 7.50.1 Setup
- 7.51 Code switches
- 7.51.1 Setup
- 7.51.2 Notes
- 7.52 The pool table
- 7.52.1 Setup
- 7.52.2 Notes
- 7.53 Once-only sound effects
- 7.53.0.1 Setup
- 7.54 Ambience sounds
- 7.55 Tips and tricks: New and interesting effects
- 7.55.1 Ghosts
- 7.55.2 Unfreezable monsters
- 7.55.3 Falling to your death?
- 7.55.4 *Malfunctioning doors*
- 7.55.5 Mines
- 7.55.6 The shrinking player
- 7.55.7 Even more textures
-
- Chapter 8 Programming the .CON files
- 8.1 The language of the .CON files
- 8.2 Notes
- 8.3 Cute tricks
- 8.3.1 Picking up weapons
- 8.3.2 Explosive ammunition
- 8.3.3 Splat!
-
- Chapter 9 Utilities and add-ons
- 9.1 Editing utilities
- 9.1.1 BUILD
- 9.1.2 EditArt
- 9.1.2.1 Changing graphics
- 9.1.2.2 Adding new graphics
- 9.1.2.3 *Using DOOM I graphics*
- 9.1.2.4 General notes
- 9.1.3 Wad2Map utilities
- 9.1.3.1 WAD2ART
- 9.1.3.2 WAD2MAP
- 9.2 Future add-ons
- 9.2.1 Add-on software wish list
- 9.2.2 Add-on software in the making
-
- Chapter 10 Troubleshooting
- 10.1 Common questions
- 10.1.1 *My 3D mode messes up*
- 10.1.2 How do I copy sectors?
- 10.1.3 I'm using Windoze/Win95, and...
- 10.1.4 I can't select sprites
- 10.1.5 How do I make a flat sprite double-
- sided?
- 10.1.6 How do I view the original maps?
- 10.1.7 How do I use new maps?
- 10.1.8 No monsters in new maps?
- 10.1.9 *How do I use the new .VOC and .MIDs?*
- 10.1.10 How do I show the wall data?
- 10.1.11 I can't save the changes in BSetup
- 10.1.12 The game ends with 'MAP E1L9.MAP not
- found!'
- 10.1.13 Can the subway speeds be changed?
- 10.1.14 How do I place active tripmines?
- 10.1.15 *How can I make a mirror shootable?*
- 10.1.16 How do I shade a whole room at once?
- 10.1.17 *The parallaxed sky looks messed up!*
- 10.1.18 *I've parallaxed the sky and now Duke
- dies!*
- 10.1.19 How do I set the par time?
- 10.2 Bugs in the game
- 10.2.1 Holodukes
- 10.2.1.1 Bug
- 10.2.1.2 Workaround
- 10.2.2 The shrinker
- 10.2.2.1 Bug
- 10.2.2.2 Workaround
- 10.2.3 Endless ammo
- 10.2.3.1 Bug
- 10.2.3.2 Workaround
- 10.2.4 Remote switch triggering
- 10.2.4.1 Bug
- 10.2.4.2 Workaround
- 10.2.5 Underwater toilets
- 10.2.5.1 Bug
- 10.2.5.2 Workaround
- 10.2.6 Explosions
- 10.2.6.1 Bug
- 10.2.6.2 Workaround
- 10.2.7 Crash on shattering objects
- 10.2.7.1 Bug
- 10.2.7.2 Workaround
- 10.2.8 Breaking unbreakable glass
- 10.2.8.1 Bug
- 10.2.8.2 Workaround
- 10.2.9 Trip mines
- 10.2.9.1 Bug
- 10.2.9.2 Workaround
- 10.2.10 Phantom bullet-holes
- 10.2.10.1 Bug
- 10.2.10.2 Workaround
- 10.3 Bugs in BUILD
- 10.3.1 *Using a Busmouse*
- 10.3.1.1 *Bug*
- 10.3.1.2 *Workaround*
- 10.3.2 Selecting long lines
- 10.3.2.1 Bug
- 10.3.2.2 Workaround
- 10.3.3 Splitting a sector
- 10.3.3.1 Bug
- 10.3.3.2 Workaround
- 10.3.4 Selecting sprites
- 10.3.4.1 Bug
- 10.3.4.2 Workaround
- 10.3.5 Autoaligning textures
- 10.3.5.1 Bug
- 10.3.5.2 Workaround
- 10.3.6 Displaying memory info
- 10.3.6.1 Bug
- 10.3.6.2 Workaround
- 10.3.7 Function keys in 3D mode
- 10.3.7.1 Bug
- 10.3.7.2 Workaround
- 10.3.8 Deleting sectors
- 10.3.8.1 Bug
- 10.3.8.2 Workaround
- 10.3.9 Copying sectors
- 10.3.9.1 Bug
- 10.3.9.2 *Workaround*
- 10.3.10 FPU reliance
- 10.3.10.1 Bug
- 10.3.10.2 Workaround
- 10.4 *BUILD wishlist*
-
- Chapter 11 Reference lists
- 11.1 List of original levels
- 11.1.1 L.A. Meltdown
- 11.1.2 Lunar Apocalypse
- 11.1.3 Shrapnel City
- 11.2 List of tiles
- 11.2.1 Control tiles
- 11.2.2 Weapon sprites
- 11.2.3 Ammo sprites
- 11.2.4 Item sprites
- 11.2.5 Special sprites
- 11.2.6 Parallax (sky) textures
- 11.2.7 *Lights*
- 11.2.8 Switches
- 11.2.9 Doors
- 11.2.9.1 Technical doors
- 11.2.9.2 Normal
- 11.2.10 *Floors*
- 11.2.11 Walls
- 11.2.11.1 *Machines*
- 11.2.11.2 Space ship hull
- 11.2.11.3 *Organics*
- 11.2.11.4 *Air ducts*
- 11.2.11.5 Modern
- 11.2.11.6 *Metal*
- 11.2.11.7 *Concrete*
- 11.2.11.8 *Stone*
- 11.2.11.9 Rock
- 11.2.11.10 *Decoration*
- 11.2.12 *Grids*
- 11.2.13 Technical-looking items
- 11.2.14 *Monitors*
- 11.2.15 Often-used special textures
- 11.2.16 Diverse
- 11.2.17 Unclassified (please assist!)
- 11.3 List of Palettes
- 11.4 List of sounds
- 11.4.1 Format of this list
- 11.4.2 The sounds themselves
- 11.5 Dimensions
- 11.5.1 Units
- 11.5.2 The map
- 11.5.2.1 Walking about
- 11.5.2.2 Weapons
-
- Chapter 12 Miscellaneous
- 12.1 MAP design contest
- 12.2 PC Gaming's offer
- 12.3 Conclusion
- 12.4 *Revision history*
-
-
-
- Chapter 1
-
- Happy lawyer dept.
-
-
- 1.1 Disclaimer
-
-
- This FAQ is to aid in informing the public about creating
- additional levels for the Game Duke Nukem 3D, by 3DRealms. In no
- way should this promote your killing yourself, killing others, or
- killing in any other fashion. Also, it should not promote the
- building of real-world death-traps :)
-
- Additionally, Klaus Breuer claims NO responsibility regarding ANY
- illegal activity concerning this FAQ, or indirectly related to
- this FAQ. The information contained in this FAQ only reflects
- 3DRealms indirectly, and questioning 3DRealms regarding any
- information in this FAQ is not recommended.
-
-
- 1.2 Trademark information
-
-
- All specific names included herein are trademarks and are so
- acknowledged:
- 3DRealms, Duke Nukem, id, DOOM, IBM, Microsoft, Windows and MS-
- DOS. Any trademarks not mentioned here are still hypothetically
- acknowledged.
-
-
- 1.3 Copyright notice
-
-
- This article is Copyright 1996 by Klaus Breuer. All rights
- reserved.
- You are granted the following rights:
-
- 1. To make copies of this work in original form, so long as
-
- 1.1. the copies are exact and complete;
-
- 1.2. the copies include the copyright notice and these
- paragraphs in their entirety;
-
- 1.3. the copies give obvious credit to the author, Klaus
- Breuer;
-
- 1.4. the copies are in electronic form.
-
- 2. To distribute this work, or copies made under the
- provisions above, so long as
-
- 2.1. this is the original work and not a derivative
- form;
-
- 2.2. you do not charge a fee for copying or for
- distribution;
-
- 2.3. you ensure that the distributed form includes the
- copyright notice, this paragraph, the disclaimer of
- warranty in their entirety and credit to the
- author;
-
- 2.4. the distributed form is not in an electronic
- magazine or within computer software (prior
- explicit permission may be obtained from Klaus
- Breuer);
-
- 2.5. the distributed form is the NEWEST version of the
- article to the best of the knowledge of the
- distributor;
-
- 2.6. the distributed form is electronic.
-
- You may not distribute this work by any non-electronic media,
- including but not limited to books, newsletters, magazines,
- manuals, catalogs, and speech. You may not distribute this work
- in electronic magazines or within computer software without prior
- written explicit permission.
- These rights are temporary and revocable upon written, oral, or
- other notice by Klaus Breuer. This copyright notice shall be
- governed by the laws of the Federal Republic of Germany.
-
- If you would like additional rights beyond those granted above,
- write to the author at "sz0759@rzmail.uni-erlangen.de" on the
- Internet.
-
-
-
-
-
-
- Chapter 2
-
- Introduction
-
-
- 2.1 *A word from Klaus Breuer*
-
-
- Well, here's the v1.2 version of the FAQ!
- I've had lots of feedback and got pointed into a lot of
- interesting directions - thanks to everyone who helped out so
- far!
-
- 2.1.1 *Printing the FAQ*
-
- A word of caution for those of you who'ld like to print this FAQ:
- the table of contents alone takes up 9 pages on my printer.
- You're probably better off reading the whole thing with an ASCII
- editor (easier to search for keywords, too).
- Personally, I use the most excellent LIST program from Vernon
- Buerg (no, I'm not affiliated, just a happy user).
-
- If you have access to a Unix box (everybody should :), here's a
- command you can use to print the whole thing in PostScript,
- cramming 300 lines of text per page:
-
- alias a2lj5c2 "lwf -pA4 -i1 -s5 -c2 -fC \!* | lpr -Plj4 -h"
- ^^^^ ^^^ ^^^ ^^^-Courier Font
- DinA4 5pt 2 column
-
- 2.1.2 *Flames*
-
- It's funny, you know. Everybody who does anything on The Net is
- going to be flamed sometime, no matter what he does.
-
- So, let's get some things straight:
-
- * This FAQ will be posted in its totality to
- alt.games.duke3d and the BUILD editing list, because
- that's where it belongs.
-
- * If you can't be bothered to read the FAQ, don't flame me
- for not including somethig in it. Especially if it's in
- there already.
-
- * Except for this general announcement, I do not respond the
- flames, mail bombings, or whatever.
-
- * Since I'm not using Windoze or somesuch, I can delete huge
- amounts of flames with a single keypress. So don't bother.
-
-
- 2.2 Intended Audience
-
-
- Since 3DRealms was kind enough to bundle their editor with the
- game itself, lots of people have dreamed of creating their own
- levels - their own worlds.
- However, the BUILD editor was written by hackers for hackers;
- documentation is scant.
-
- Thus this paper should help everybody who intends to design his
- own levels. However, you should be willing read all the info in
- here and experiment as well. If you have a problem, study this
- text, look at the original maps and experiment. Don't ask the Net
- about it right away.
-
- Creating a map is real easy. Creating a *good* map is very hard,
- requiring not only perseverance and patience but time and -yes-
- even a bit of brains ;)
-
-
- 2.3 *About the "UnOfficial" DUKE NUKEM 3D EDITING FAQ*
-
-
- Welcome to the release v1.2 of the "UnOfficial" DUKE NUKEM 3D
- EDITING FAQ.
-
- What does that mean? Version 1.2 is the seventh release of the
- FAQ, "UnOfficial" means absolutely nothing, DUKE NUKEM 3D is the
- name of the game, Editing is what the FAQ is all about and FAQs
- are [F]requently [A]sked [Q]uestions (with answers, of course :).
-
- Here's how revision classification works. If a new version of
- the FAQ only has a small amount of information changed or added,
- the version number is increased by 0.1. This is called a "minor
- revision."
- If a new version of the FAQ has a substantial amount of new
- information changed or added, the version number is increased by
- 0.5. This is called a "standard revision."
-
- If a new version of the FAQ has a huge amount of added or changed
- information, major parts of the FAQ are rearranged, or major
- parts of the FAQ are rewritten, then the version number is
- increased by 1.0. This is called a "major revision."
-
- All chapters containing changes from the last versions have their
- chapter headings enclosed in **'s. In earlier versions of the FAQ
- I used a rather more complex system showing how long ago which
- chapter was last changed but it became too much work - this thing
- has simply grown out of all proportion.
-
- Also, ##'s are at times found in the text - these denote
- questions I urgently need help on, and any feedback is especially
- appreciated.
-
-
- 2.4 Getting the "UnOfficial" DN3DE FAQ
-
-
- The "UnOfficial" DN3DE FAQ is posted every month (or earlier if a
- new version is released) on the following Usenet group:
-
- alt.games.duke3d
-
- The "Subject:" line of the post will be "'UnOfficial' DN3D
- EDITING FAQ v??.??" where "??.??" is the version number of the
- FAQ.
-
- The FAQ is also posted to the editing mailing list as soon as a
- new version comes out.
-
- An HTML version is available at
- http://ww.aber.ac.uk/~ngh94/duke.html
-
- New releases of the "UnOfficial" DN3D EDITING FAQ will be
- uploaded to internet ftp sites as soon as I find suitable sites.
-
- The file name of the upload will be "dnefaq??.faq" where "??" is
- the version number of the FAQ.
-
- ATTENTION: ALL BBSes, Compuserve, America Online, GEnie, and all
- other information services. PLEASE conform to the naming
- standard of the "UnOfficial" DN3D EDITING FAQ when placing this
- file on your system.
-
-
- 2.5 *Adding to the FAQ*
-
-
- If you want something added to the FAQ, please send E-mail to
- "sz0759@rzmail.uni-erlangen.de" (no quotes), explaining what your
- addition is.
-
- It will be reviewed, and if accepted, added to the next FAQ
- version. In the E-mail, please supply your name and E-mail
- address.
- Please note that all submissions to the FAQ become the property
- of the author (Klaus Breuer) and that they may or may not be
- acknowleged.
-
- By submitting to the FAQ, you grant permission for use of your
- submission in any future publications of the FAQ in any media.
- The author reserves the right to omit information from a
- submission or delete the submission entirely.
- If you send me binaries, please use the standard UUENCODE program
- to do so. I can't read the Base64 format or whatever it is that
- Windoze uses.
-
-
- 2.6 *The DN3D EDITING mailing list*
-
-
- Ginger (lattav@vnet.net) has set up a very active mailing list.
-
- To subscribe, send email to: majordomo@oozoo.vnet.net
- Put in the body of the message: subscribe duke3d-edit
-
- A digested version is also available, send email to the same
- address, but the body of the message should be: subscribe
- duke3d-edit-digest
-
- To unsubscribe, send the line
- unsubscribe
- to duke3d-edit-digest-request@oozoo.vnet.net
-
- The mailing list digests are archived at
- oozoo.vnet.net/pub/duke3d
-
-
- 2.7 The DN3D EDITING ftp site
-
-
- We now have an ftp site where everything for editing duke maps
- will be found. The address is oozoo.vnet.net/pub/duke3d-edit.
-
-
- 2.8 *WWW sites*
-
-
- There are LOTS of WWW sites around. Here are just some pointers
- (in alphabetical order) which should get you started:
-
- http://fluffy.neb.net/Duke
- http://www.3drealms.com
- http://www.aber.ac.uk/~ngh94/duke.html
- http://www.cris.com/~Demogorg/main.html
- http://duke3d.crystalball.com/stereo/tfiles.html
- http://www.ea.ucla.edu/~kd/Duke3D/index.html
- http://www.fluffy.neb.net/Duke
- http://www.frii.com/~afs/allabout.cgi/dn3d
- http://www.koan.com/~ryman
- http://www.newreach.net/~avenger/
- http://www.salamander.net/~avenger/msques.html
- http://www.servtech.com/public/duke3d/
- http://www.whiterock.com/kinglink/duke3d.html
- http://www.wi.leidenuniv.nl/~cwong/myindex.html
-
- And these sites have particularily many MAPs:
-
- http://duke3d.crystalball.com/stereo/maps1.html
- http://users.aol.com/brnyrstomp/levelsf.html
- http://www2.awinc.com/users/dgronlun/duke3d/duke3dlevels.html
- http://www.whiterock.com/kinglink/duke3dlev.html
- http://www.i2.i-2000.com/~richardg/levels.html
-
- Finally, there's a german site too:
-
- http://members.aol.com/cwaitschie/duke3d/duke3d.htm
- 2.9 IRC
-
-
- The IRC channel of interest is #duke3dedit.
- Don't ask the 'The 3D mode is messing up my screen' question
- there. Please.
-
-
- 2.10 *Acknowledgments*
-
-
- I'd like to thank 3DRealms for bringing out such an astonishing
- game! After two years, we finally seem to have a DOOM killer.
- Also, it's real nice of you guys to add the BUILD program into
- the package! We've never had an editor out so fast :)
-
- Thanks to Allen H Blum III, Richard "Levelord" Gray and Kenneth
- Silverman for writing the Build docs. We all know you were in a
- big hurry and the docs nearly didn't make it to the CD, so we
- especially appreciate your work!
-
- ALPHABETICAL ORDER:
-
- Ahmed Hammad (aka Spasmo) (cosc19z5@bayou.uh.edu)
- RightShift sprite selection/nonclip move trick and
- helped with the sliding door. The metallic tile
- idea is also from him.
-
- Allen H. Blum III
- (Stryker@metronet.com)
- Thanks for showing up in the mailing list and
- answering questions! Especially the 'shade a whole
- room at once' idea is way cool. (Treat him to
- dinner, Buy Major Stryker ;)
-
- BKlehr (bklehr@aol.com)
- Caught some FAQ bugs and found out how to make
- shootable mirrors (bulletholes!).
-
- Brett Gmoser (gmoser@gramercy.ios.com)
- Wrote a long tutorial covering all kinds of
- things.
-
- Brian Gentry (gentryb@wasc.egginc.com)
- Found out about switch sounds.
-
- Brian Kidby (thekid@ornews.intel.com)
- Wrote the 'DeathMatch Level Design Guidelines
- v1.0' for DOOM, which I've used as a basis for my
- 'DukeMatch level design' section.
-
- Bullethead (???)
- Wrote a couple of interesting lab notes, shedding
- light on some more obscure parts of BUILD.
-
- Cho Yan Wong (aka Tempest) (pwong@pobox.leidenuniv.nl)
- Wrote several very good tutorials.
-
- Chris Longhurst
- (chrisl@division.co.uk)
- Found out about pulsing lights and clamshell
- doors.
-
- Dan Benge (DanBenge@ix.netcom.com)
- Ideas on level design and the Alice In Wonderland
- effect.
-
- David Moisan (dmoisan@shore.net)
- Many thoughts on level design.
-
- Ginger Latta (lattav@vnet.net)
- Has agreed to set up a mailing list, even
- including a digested form. She's also setting up
- an ftp site for us!
-
- Jeff Oliver (jroliver@cs.sci.csupomona.edu)
- Teleporter info.
-
- Jesse Lambert (slcsj@cc.usu.edu)
- Did the nice ASCII logo.
-
- Jim (jek19@ios.orci.com)
- Help on rotating doors.
-
- Joe Giddings (goldcard@intrstar.net)
- Worked out lots of info about the different
- palettes.
-
- John Allen Christian
- (hugejohn@ix.netcom.com)
- Info on Build keypresses (tilting floors).
-
- Jonas (JoXonoX@aol.com)
- Sprite flag meanings.
-
- Kris Lloyd (klloyd@uniserve.com)
- Info on user-controlled force fields and Duke's
- crashinf car/helicopter as well as (finally!)
- respawning minibosses.
-
- Mark Lee (mark.lee@gecm.com)
- Had the idea about making bridge sprites single-
- sided.
-
- Mike Forst (mcforst@uniserve.com)
- Found out about the BIGFORCE tile.
-
- Moritz Weigt (wtiger17@aol.com)
- Found out about sprite difficulty settings.
-
- Nigel Hughes (ngh94@aber.ac.uk)
- Converting the FAQ to HTML format.
-
- Rober Coward (rcoward@madge.com)
- Found some FAQ errors and Duke bugs.
-
- RoboJim (Robojim@aol.com)
- Info on grapplers, garbage/stripper respawns,
- telephones and train setups.
-
- Samiel (samiel@fastlane.net)
- Wrote the tile renumbering utilities.
-
- Scatt Man (scattman@bssc.edu.au)
- Ambience, once-only sounds and demo camera info.
- Also wrote the sound list (now I don't have to do
- it myself, yaay!).
-
- Sir Hoppy (glenn@interaccess.com)
- Pointed out some errors in the air vents section.
-
- Steffen Itterheim
- (100606.2141@compuserve.com)
- Apogee Staff, is also answering questions on the
- mailing list - thanks!
-
- Steve C. Brown (sbrown@praline.no.NeoSoft.com)
- Help with F8 key.
-
- Thomas Mueller (tsmuelle@cip.informatik.uni-erlangen.de)
- He found out lots of basic workings like
- Teleporters, Swimming Pools, etc and put me on the
- right track in regard to sector effectors.
-
- THANK YOU! If, for some reason, I did miss you, PLEASE send me
- e-mail!
-
- Finally, I'd like to thank everyone who reads this FAQ, you are
- what the FAQ is for!
-
-
- 2.11 Accurate information
-
-
- An attempt has been made to make the information in this FAQ as
- accurate as possible. Unfortunately, due to the fact that the
- game was recently released, and updates, add-ons, and new
- information are being worked on each second, it's hard to keep
- up.
-
-
- 2.12 Help with new levels
-
-
- If you are building a new level and are experiencing trouble,
- feel free to contact me about it. Chances are that you are not
- the only one with this problem, and I can add it to the FAQ.
-
- Also, your particular difficulty could be an interesting side-
- effect of something else, and others might want to hear about it
- as well.
-
- However, *please* read the FAQ fully before asking me about
- anything :)
-
-
-
-
-
-
- Chapter 3
-
- Preliminary information
-
-
- This chapter explains some of the background behind creating
- add-ons for Duke Nukem 3D.
-
- 3.1 Intended audience for this chapter
-
-
- I guess all of you have heard of the game DOOM by id Software :)
- Well, many of you have created add-on maps for DOOM. You know how
- a door works, what a sector is, what to look out for while
- creating a level.
- While Duke3Ds BUILD engine is much more powerful than id's (see
- below for a list of differences), it is similar enough for all
- the experts to skip this chapter.
-
- What? You've never created a DOOM map? Never heard of DEU? Don't
- know that a DOOM-style door works by raising it's ceiling off the
- floor?
- Ok, this chapter here's for you.
-
- First off, let me explain that I've created quite a few DOOM
- maps. Thus if I take some things for granted you don't know
- about, please write me and ask! That way I'll be able to work it
- into this chapter, making it easier to understand.
-
-
- 3.2 The basics
-
-
- Let's start by taking a look at the basics behind map building.
-
- Do yourself a favour and don't skip this section!
- I know many of you have met computers through Windoze or some
- other GUI toy and don't know much about the underlying
- intricacies of your system, but please - the more you know about
- how Duke3D works, the better your maps will be.
-
- Besides, it's fun to learn things :)
-
- 3.2.1 *Differences between the Build and DOOM engines*
-
- Those of you who don't know DOOM (gasp!), feel free to skip this
- section.
-
- The Build engine is the system used to create Duke Nukem 3D.
- Here's a list of the improvements over DOOM:
-
- * Looking up and down
- Finally, you can accurately shoot an RPG through an
- upper-story window without needing a target in the window.
-
- * Rooms above rooms (even if you can't display them)
- Build real spiral staircases and crossing corridors.
-
- * Mirrors
- See your enemies around corners.
-
- * Multi-colored lights
- Great ambience effects.
-
- * Moving/rotating sectors
- This is in my opinion (no, it's not humble) the best
- improvement. It allows you to build subways, real doors,
- moving stairways, squeeze through rotating gears, survive
- (?) earthquakes, drive around in vehicles...the
- possibilities are simply endless.
-
- * Transparent sprites
- Build ghosts and proper windows.
-
- * Flying via jetpack
- Fly about, attack your opponents from above. Very useful
- as a long drop can now kill you.
-
- * Underwater diving
- The obvious extension to the flying capability. Explore an
- underwater world, fight sharks :)
-
- * Sloping floors and ceilings
- This adds no end of realism! Finally, we can have sloping
- corridors, pyramid-shaped buildings, real domes...
-
- * Rotated sprites
- Doesn't seem like much, but a rotated sprite marked as
- 'blocking movement' can be used as a floor - and thus we
- can fake bridges!
-
- * Blastable walls
- A very nice touch - it allows you to blow (predefined)
- holes in walls.
-
- * Interactive Environment
- Bullet holes appear in walls, bottles burst into
- splinters, bloody footsteps lead away from corpses, window
- panel burst apart...fun.
-
- * SVGA support
- If your system can take it. Looks good, but in my eyes not
- so important.
-
- * Highly customizable
- Very nice, this. You can write your own opponent-AI, very
- easily add new sounds and graphics, and change the weapons
- simply by editing an ASCII file.
-
- 3.2.2 Useful cheats for testing levels
-
- Read the Duke Nukem FAQ for a list of all cheats. Here are just
- the codes I find myself using while testing a level:
-
- DNRATE Display the fps meter in the top left.
-
- DNCOORDS Shows your cordinates.
-
- DNSHOWMAP Show the full map.
-
- DNDEBUG Shows some interesting info in the top left.
- ## Anybody know what it means? Could be real
- useful.
-
- DNCLIP Toggle clipping. This will kill you if you walk
- into empty space, so use it only to quickly walk
- through doors and the like.
-
- DNKROZ Toggle God mode.
-
- DNUNLOCK Unlock all doors on the level.
-
- DNWEAPONS Give all weapons but no items or keys.
-
- DNITEMS Give all items and keys.
-
- DNSTUFF Gives everything.
-
- 3.2.3 What a map consists of
-
- Maps are made up of sectors (rooms), walls and sprites.
-
- 3.2.3.1 Sectors
-
- The map itself is basically just a collection of sectors.
- A sector is a room consisting of a floor, a ceiling and walls.
- Imaging a square column, looking like this:
- __________
- |\ \
- | \ \
- | \__________\
- \ | | Top block: Roof
- . \ | |
- . \|__________|
- . . . .
- . . . .
- ___________ . Player area
- |\ . \ .
- | \ . \ .
- | \__________\
- \ | |
- \ | | Bottom block: Floor
- \|__________|
-
- The lower block is the floor, the upper block is the roof, and
- the player moves about in the missing bit in the middle.
- The edges are walls, although it's possible to make a wall
- intangible to the player, allowing him to cross it into another
- sector.
-
- Sectors can share borders with other sectors, and can include
- other sectors as well.
- Thus a room with a crate standing in the middle would consist of
- two sectors: The room itself, with a square sector (the crate)
- inside it.
- The crate sector would have the same ceiling height as the room,
- but with a slightly raised floor (forming the crate): the player
- can hop onto the crate, but he can't walk below it.
-
- The walls of the sector making up the crate would be intangible
- (invisible and not blocking player movement), otherwise it would
- look like a column instead.
-
- This also explains why we can't have real bridges: if we raise
- the floor of the bridge sector high enough, the bottom block will
- elongate upwards until we have a wall instead.
-
- Of course, seen from above sectors can have any shape: square,
- rectangular, round or kidney-shaped.
-
- 3.2.3.2 *Walls*
-
- Walls come in two flavours: one-sided and two-sided.
-
- Imagine carving a dungeon out of a mountain. So far you have dug
- two rooms, connected by a tunnel. This would translate into three
- sectors; two big ones connected by a smaller one:
-
- _________________________
- / | ________________
- / .______. | Key:
- | * <- The player . . | |
- 1-sided wall
- \ .------. | .
- 2-sided wall
- \ | |_______________|
- \________________________| (seen from above)
-
-
- Obviously, the outer walls have only one side, since they consist
- of solid rock. But the borders between the two big sectors and
- the small one are two-sided walls - you can walk on both sides of
- them.
-
- 3.2.3.3 Textures
-
- Textures are what a wall, a floor or the ceiling actually looks
- like.
- They make the difference between a wall looking like a brick wall
- or a steel slab. You can also texture a floor or the ceiling.
-
- Duke has quite a lot of textures for us, ranging from plush red
- wall-to-wall carpeting to green alien slime. Some textures are
- even animated, meaning they look as if they were moving - water
- is a nice example of this.
-
- Textures always make me feel a bit like a magician - with a wave
- of my wand (ok: mouse) I can change a wall from flimsy straw to
- solid steel and back.
-
- 3.2.3.4 Sprites
-
- Sprites are all the objects in Duke3D: the flower pot in the
- corner, the switch on the wall, the alien lurking behind you -
- even the player is a sprite.
- A sprite is always flat and two-dimensional, like a piece of
- paper. Even a 3D-looking alien is just a sprite: Duke3D simply
- shows you different sprites according to from where you're
- looking at the alien.
-
- Sprites exist in three forms:
-
- Standing up This sprite always faces you, looking nice and
- solid. A flower pot or a bottle is a typical
- example.
-
- Flat This sprite actually behaves like a painted piece
- of paper. They look weird standing in the middle
- of a room, so they are usually pasted on the walls
- (like switches or posters).
-
- Lying down These sprites are also flat, but they're lying on
- the ground (or hanging on the roof) instead. An
- example are the magazines scattered on the ground
- in the Red Light District (E1L2).
-
- Sprites can block movement and can be placed at any height. Thus
- it is possible (using sprites lying down) to create real 3D
- functions like bridges out of sprites.
-
-
-
-
-
-
-
- Chapter 4
-
- Planning and designing a level
-
-
- This chapter looks at designing a level with BUILD.EXE, the
- editor supplied on the CD (in \GOODIES\BUILD).
-
-
- 4.1 *Installing BUILD*
-
-
- An awful lot of people are having an awful lot of trouble getting
- BUILD to run. So here's the beef:
-
- * Install Duke3D to your hard drive.
-
- * Copy everything from \GOODIES\BUILD into the Duke3D
- directory (NOT into a subdirectory thereof!). As some
- people have trouble understanding what I mean (Heaven
- protect us if they decide to post their first levels ;),
- here are the DOS commands to use (assuming your CD-ROM is
- drive E):
-
- * CD C:\GAMES\DUKE3D
- COPY E:\GODIES\BUILD\*.*
-
- * Finally, remove all read-only attributes: ATTRIB -R *.*
-
-
- 4.2 *Before starting*
-
-
- I know you're eager to start building the level (why else are you
- reading this FAQ?), but there are several things you should do
- before firing up the editor and designing away:
-
- Play the game Play the whole Duke Nukem 3D game from start to
- finish. All three episodes. This will give you
- lots of ideas on what is possible and what you'd
- like to do.
- Look critically at how things happen: doors
- opening, aliens suddenly appearing, lights
- changing, gears rotating...
-
- View the maps Use the editor to have a close look at the
- existing maps. How do these doors open? What kinds
- of tricks were used to work around the limitations
- of the Build engine? How do people actually do a
- house - note how all walls are actually build out
- of one-sided walls. Things like that.
-
- Have a theme Please. Don't build yet another red light district
- with a sleazy bar and some dancers. We've got one
- already!
- Try to think of something original and take some
- time to really think about what you're trying to
-
- do: the New York traffic? A nuclear power station?
- An underwater base? A barren planetoid surface?
- Also try to think what would fit into the theme
- and what wouldn't - make a list.
- A .TXT file with a short story setting the mood
- and explaining your mission is also nice.
-
- Draw a map Take some graph paper and draw the whole map
- first. Believe me, your level is going to be lots
- better this way. You'll be able to take your time
- and think about everything you want to include.
- Another approach is to just make a rough sketch of
- the map with a good theme and create everything
- 'on the fly'. That's the way it usually ends up
- anyway :), but the map-drawing approach does
- produce nicer-looking maps.
-
- Less is more Zen, yes. Also known as the KISS principle: Keep
- It Simple, Stupid.
- Remember that you have lots of tools and tricks to
- create a map - don't use them all! Don't include,
- for example, dancers just because you can. Don't
- use the trip mines in a non-futuristic level.
- Leave out the security cameras in a medieval
- castle (time travel theme?).
- Rather build several levels, each based on one or
- two ideas.
-
- Keep it small Beginners usually make the mistake of designing
- cyclopian buildings. Massive forecourts, towering
- walls, huge gloomy halls - all empty.
- Rather keep the rooms small and full of detail -
- they will be more interesting and the game will
- run faster.
-
- Time You'll need loads of it. Much more than you think.
- Especially the shading and testing will take days.
- Weeks.
- Have a look at the original levels and see just
- how much time and care has been spent on them.
- Don't post a level which is substantially below
- the niveau of 3DRealms levels - nobody will like
- it.
-
- Data It is said that you should write what you know,
- and the same applies to level design. If you've
- never really looked hard at a subway station,
- don't try to create one.
-
- Read this FAQ Don't jump into drawing your level half-way
- through reading this FAQ - wait until you have a
- good idea just what is possible with the Build
- engine.
-
- Your first level
- Face it. Your first level is going to be something
- you'll be ashamed of after designing your third
- level. Don't post it.
-
- 4.3 Pros and cons of using real-world maps
-
-
- There are lots of levels based on maps of the real world. Maps of
- your campus (hello, first years!), maps of your dorm, your
- apartment, your house.
- The question is, should you use them?
-
- 4.3.1 *Advantages*
-
- Real-world maps are drawn by professionals (ok, ok, I've also
- seen houses designed by blind idiots) who know what they are
- doing.
- They don't forget to make the outer walls thicker than the inner
- ones. They don't forget the kitchen or the storage space. The
- halls are of the right width...in short, the whole map is
- realistic and believable.
-
- Also, it's real quick creating a level from such a map since you
- don't have to think and design as much.
-
- Finally, it's a great way to learn how the editor works as it
- forces you to implement some things you might otherwise be too
- lazy to work out.
-
- 4.3.2 Disadvantages
-
- Such maps are also boring.
- Believe it or not, but most architects didn't design their block
- of flats for gun-toting maniacs chasing each other through the
- corridors.
- There are too few places to hide and the map typically has a
- simple, utilitarian look.
-
- Scale is a hassle as well. Ever looked real closely at a subway
- station? It's actually very big and empty. And very boring as a
- Duke level.
- So you'll have to scale everything down by quite a lot anyway.
-
- Remember that it's great fun for yourself to run through a
- virtual representation of your house - but others who don't know
- you might find such a map terribly boring.
-
- And the biggest disadvantage of all: you don't think enough about
- your level. The more time you spend mentally planning your world,
- the better it will become.
-
-
- 4.4 Using DOOM maps
-
-
- With the Wad2Map program (see further below), it is now possible
- to convert DOOM maps to Duke3D maps.
-
- Do everybody a favour: don't.
- And here's why:
-
- * We've _seen_ the DOOM maps already.
-
- * They aren't designed to take advantage of the Build
- engine.
-
- * They aren't designed to work with the new monsters.
-
- * It's a heck of a lot of work checking a level after
- conversion (for example, switches won't work), and it's
- easy to mess things up and even forget textures (HOM, here
- we come!).
-
-
- 4.5 Designing the level
-
-
- When designing a level, keep in mind that there is no formula
- telling you how to build a fun level. Unfortunately, I can't just
- tell you "Do this and that, and everybody will love your level".
- But I can give you some tips and pointers.
-
- 4.5.1 Level types
-
- There are basically four types of levels:
-
- 4.5.1.1 *Single player*
-
- Single player maps are typically large and intricate, full of
- detail and clever monster ambush points. They are aimed at people
- who play them on their own.
- For example, nearly everybody here in Germany plays in single-
- player mode, as the telephone rates are simply shocking.
-
- 4.5.1.2 Co-op
-
- Few levels are actually designed for co-op playing only. If they
- are, they are larger versions of single-player levels, with a lot
- more monsters and perhaps the odd trap which can only be passed
- via teamwork.
-
- 4.5.1.3 *DukeMatch*
-
- Since the original levels in Duke3D are very very good as both
- single player and (usually, anyway) co-op, most people create
- DukeMatch-only maps.
- These maps are small and fast, concentrating on action instead of
- the surroundings.
- This doesn't mean that detail should be overlooked, though.
-
- 4.5.1.4 *My room/flat/dorm/house*
-
- These levels attempt to copy a real-world place with as much
- accuracy as possible. They are typically rather boring and only
- of interest to the people who know the place well.
- The only use I personally see for such levels is to learn how to
- use the editor.
-
- 4.5.2 Choosing a level type
-
- Your new level will usually be one of the above - very few maps
- suceed at being good at everything.
- Happily, there's an exception to the rule: JenApt (Jennies
- Apartment) is an early (and great) level which excels at
- combining all four level types in one. Created by Jennifer Lynn
- (fragment@cyberramp.net), it's well worth looking at.
-
- Single player levels are easy to do - all you need is a good
- idea, lots of imagination and plenty of time. If you make the
- level large enough, you might be able to combine it with a co-op
- level.
-
- DukeMatch levels are surprisingly difficult to create. Not only
- do tastes differ (by a lot! For example, do I Hide&Snipe or
- Chase&Blast?), but you have to do a lot of testing to make the
- level just right.
- And even then, it'll only be just right for you, and others might
- not like it at all. See the section on DukeMatch level design
- below.
-
- The 'My very own room in VirtualReality MultiMedia DataHighway
- CyberSpace (tm)' theme we'll leave to the VisualBasic
- programmers.
-
- 4.5.3 *Random tips and thoughts*
-
- ## Feedback needed! In this section, I'd like to simply list tips
- and tricks to keep in mind while designing a level.
-
- 4.5.3.1 *Working with Build*
-
- * Build from the outside in.
- When creating a house, for example, first create a huge
- bonding sector, containing everything else. You can always
- resize it later.
-
- * Do the rough work first.
- Build your house (or dungeon, or subway, or whatever) like
- you would build it in real life: start with the outer
- walls, add the rough rooms, connect everything up and only
- then add the details: glass in the windows, different
- textures, etc.
-
- * Save your level a lot. Use the 'save (A)s' option to
- create several versions of your level. Thus, if an idea
- goes wrong, you can always return to an earlier version.
- The more backups you have, the happier you'll be when (not
- if) BUILD nukes your map.
-
- * Beware the bug! BUILD is not perfect and contains some
- nasty bugs capable of rending your map to pieces. See the
- section on Build Bugs for more info.
-
- * Use F12 to dump the map to disk and print it out.
-
- 4.5.3.2 *Do*
-
- * Use F7 a lot while playing your map to make sure the scale
- is all right. Remember that scale is important! Duke
- levels are usually smaller that their real-world
- counterparts.
-
- * Most sprites are too large when just inserted as they are
- (especially the buttons). Make sure you scale everything
- right.
-
- * Take it easy on triangle-shaped sectors, the tip can look
- real bad.
-
- * Try to make everything look as realistic as possible:
- wooden ceilings are usually tilted and are held up with
- massive beams. Often, corners of rooms (especially large
- ones) will be held up by stone pillars. And so on.
-
- 4.5.3.3 *Don't*
-
- * Avoid cliches: do you NEED a shark in every bathtub? Why
- yet another lizard sitting on a toilet? Should this level
- really contain strippers?
-
- * Please don't overuse the effect of monsters warping in!
- It's so darn unrealistic! Rather open a hidden door or
- somesuch, and have the opponents boil out from there.
-
- * 3DRealms added lots of in-jokes: the doomed space marine,
- Indiana Jones, the Terminator, the alien on the toilet...
- Don't reuse these; nothing worse than an old, tired joke
- seen for the 100th time. Invent your own!
-
- * Don't post half-finished levels to let others see your
- 'work in progress'. What for? You'll only make a bad name
- for yourself if you release half-baked levels...
-
- 4.5.3.4 *General tips*
-
- * Scare the player. Dan Benge came up with the idea of
- breaking a (single player) level into scenes: lead the
- player into it (lots of ambience sound), lead him to the
- climax (octabrain in the face, whatever), reward him
- afterwards (triumphant music, power up, keys).
- Tension is very important in a level.
-
- * Have plenty of height variations: stairs, lifts, ledges.
- Force the player to jump, too.
-
- * Make players earn bigger and better weapons. Especially,
- guard the bigger ones well.
-
- * If the player falls into nukage, give him a way out (a
- button to press, stairs...). He should be punished for
- moving carelessly, yes, but not killed.
-
- * Mark secret doors - a lightly darker or mismatched texture
- (forcing you to look closely) will do.
-
- * Keep in mind that players will try _anything_ - if they
- are crazy enough to try and jump to that ledge, reward
- them if they make it (and punish them if they don't >:)
-
- * Pacing! Keep the player interested. This should also stop
- you from building mazes, which are plain boring to
- explore.
-
- * The Ending: make it good! When the player finally managed
- to finish the level, make it worth his while.
-
- 4.5.3.5 *Posting your level*
-
- When posting your level on the internet or anywhere else, please
- adhere to the following checklist:
-
- o I've read and understood all above thoughts.
-
- o My level is as good or better than the original Duke
- levels.
-
- o I have included a .TXT file giving details about the level
- (your address, if single play is supported, etc).
- o I'm not going to brag about how very cool and awesome my
- level is (sheesh, guys, how often have I heard that one?
- By now I'm not downloading any level with the word
- 'awesome' in the description as I know that it'll be a
- waste of time - again).
-
- 4.5.4 Typical mistakes to avoid
-
- This section contains, in no particular order, common errors
- which you should avoid:
-
- 4.5.4.1 Crossed lines
-
- By this I mean bounding lines from the same sector crossing each
- other. While the game will allow this, it usually looks bad.
-
- 4.5.4.2 Overlaying lines
-
- Overlaying lines very often leads to mysterious graphics glitches
- (a door texture suddenly spilling onto the floor is a typical
- example).
- Rather place the lines very close to each other (using Grid lock
- off).
-
- 4.5.4.3 Hall Of Mirrors
-
- The Hall Of Mirrors (HOM) is caused by a missing texture and is
- only really possible if BUILD is about to crash or you converted
- a DOOM map via WAD2MAP.
-
- 4.5.4.4 Door side tracks
-
- Make sure the side tracks of doors don't move up with the door if
- building a DOOM-type door. Use [O].
-
- 4.5.4.5 *Unaligned Textures*
-
- Aaargh! Unaligned textures are one of the most ugly design errors
- around, and BUILD makes it so easy to avoid them! Use [.] a lot,
- and look at all the corners to make sure the textures fit.
- Even Our Hero Jenny made that mistake in the JenApt map :(
-
- 4.5.4.6 Missing Player Starts
-
- Make sure there are at least 7 co-op and 7 DukeMatch player
- starts in your map (the 8th one in each case is the normal player
- starting point).
-
-
- 4.6 DukeMatch level design
-
-
- The info in this section I've shamelessly swiped from the
- excellent 'Deathmatch level design guidelines v1.0' from Brian
- Kidby (thekid@ornews.intel.com).
-
- As the basis for this section was aimed at DOOM players, I
- haven't included as many Duke-specific things as I should. ##
- Please send me your thoughts and ideas, I'll be expanding this
- section.
-
- 4.6.1 Monster placement
-
- Pig cops are useful for supplying ammunition to the player.
- Since ammunition respawns, the question is if you want your
- players to fight for their ammo, especially as dead enemies don't
- always drop anything (it's easy to hack the GAME.CON file for
- this, though - see lines 1072/2862 and 188 in USER.CON).
-
- Other monsters (the leaping chaingunning lizard comes to mind)
- might give ammo as well, but they usually just distract from the
- main aim of the game - nuke your opponent!
-
- However, the placement of monsters can do a lot to generate the
- 'feel' for your level - minibosses might keep a large area clear
- for a long time, as nobody will want to get close to them if they
- dont have to...
-
- 4.6.2 Weapon placement
-
- 4.6.2.1 Power weapons
-
- Power weapons are defined as the favourite DukeMatch weapons: the
- chaingun and the rocket launcher.
- In nearly all DukeMatches I've played, the first priority of the
- players was to get one of these weapons. The second was to start
- using it >:)
-
- These weapons should be places as far apart as possible. This has
- three reasons:
-
- * Getting the gun
- Placing the weapons far apart forces the players to cover
- more ground. Thus they meet more opponents and monsters,
- possibly trigger traps and learn the layout of the level.
-
- * Defending the gun
- Many DukeMatchers will go to a power weapon and 'sit on
- it', waiting for the other players to show up. if the
- weapons are far apart, the players won't see much action
- during their wait, forcing them to move ot to hunt sooner
- - much more exciting.
-
- * Covering tracks
- In a new DukeMatch level, players like to keep the
- locations of the weapons secret for as long as possible.
- If the weapons are far apart, the chances of being
- followed are so much smaller.
-
- 4.6.2.2 Starting-point weapons
-
- Every starting point should have a shotgun next to it, so the
- players are not completely defenseless at the beginning. This
- also gives them more confidence to go out looking for bigger toys
- to use.
-
- On the other hand, some people prefere to place the starting
- points right next to 'normal' weapons - every start point next to
- a different weapon. This makes respawning interesting, as the
- kind of weapon available at the beginning (Shrinker vs. Trip
- bombs, for example) radically changes the style of play.
-
- 4.6.3 Ammo placement
-
- 4.6.3.1 Amount and location
-
- Place small amounts of ammo in high-traffic areas, and larger
- (not too large!) stashes in secret places. Adding a sniper spot
- near the bigger stashes makes life a lot more interesting, too.
-
- 4.6.3.2 Ammo Quantity Types
-
- Easily accessible ammo should be of the 'small quantity' type, eg
- single pipe bombs instead of pipe bomb boxes, as this eliminates
- waste when a player picks up more than he can carry.
-
- Also, larger amounts of ammo should be strategically placed (see
- above).
-
- 4.6.4 Health placement
-
- Rarely does health seem to be a problem in DukeMatch games.
- Usually, players either die really quickly of a massive lead
- overdose, or they run and hide, sniping at their opponent.
-
- If you do place health around (and I still think you should), do
- so sparingly, observing the same rules as for ammo. Also, place
- toilets and water fountains only in high-traffic areas, to avoid
- players disappearing for a long time to fill up their health
- slowly (although, if several nice sniper spots are nearby...).
-
- 4.6.5 Architectures
-
- First off, let me say that level layouts are always a matter of
- taste.
- Here are just some things which I like in DukeMatch levels:
-
- 4.6.5.1 Large, open areas
-
- Fun! Show your aim at long-range pistol shooting, have rocket
- launcher duels (have you mastered jumping over an approaching
- rocket?), fight several players at once and have lots of space to
- move about.
-
- 4.6.5.2 Long, wide passages
-
- Same as for large areas applies - running towards somebody,
- dodging his attacks while shooting your own is great fun.
-
- 4.6.5.3 Nooks 'n crannies
-
- Such areas should not be too large, but it is fun as well:
-
- * Hunting somebody through narrow, twisting passages is an
- adrenaline rush in itself - is he hiding behind this
- corner?
-
- * Lots of nice sniping spots.
-
- 4.6.5.4 Balconies, bridges and towers
-
- It's always fun watching your opponent walking under you,
- completely unaware of your presence until you pull the trigger...
- It's also nice blasting a sprite bridge out from under his feet
- :)
-
- 4.6.5.5 Fortresses
-
- At times, players may decide to pay a 'capture the flag' theme,
- with four players defending a fortress and four others trying to
- break it (perhaps with the aim of reaching/rescuing the dancer in
- the middle?).
- The fort should be well armed and not too large with lots of nice
- sniper spots (and the odd blastable wall to enable attacks
- through the back).
-
- 4.6.5.6 Obstacles
-
- Obstacles (pillars, crates, tables, sprites) are very important
- in DukeMatch, as they allow you to hide and dodge enemy fire.
-
- 4.6.5.7 Sniper spots
-
- Sniper spots greatly add to DukeMatch levels. They should always
- have an escape-route, though, just in case your first shot
- missed...
- One-way walls are good for this, but perhaps a bit _too_ easy.
-
-
- 4.7 *Once your level is done*
-
-
- A finished level is far from finished - lots of things remain to
- be done:
-
- Shading Shade your level! See how efficiently 3DRealms
- used light and shade in their levels? Do the same
- - carefully shade every single room. Add lamps and
- (colored) lights. Sunlight streaming through the
- windows. Shadows behind columns and buildings.
- Shade plays a major part in how realistic (and
- thus, how good) a level will look. Doing it well
- takes ages.
-
- Textures Well, we won't see the HOM (Hall Of Mirrors)
- effect from DOOM anymore. But make sure your
- textures are aligned. It's so easy to do using
- Build, please make sure they look alright! Nothing
- worse than seeing the brick texture break on the
- edge of a wall, clearly showing it to be fake.
- Use the [.] key a lot, make sure you know how it
- works (and save before you do, it crashed a couple
- of times on me).
- Also, don't use too many textures - the have to
- fit your theme and the game runs faster on fewer
- textures.
-
- Details 'All those tiny little details...'
- The TV in the corner. The discarded bottle on the
- street. Blood on the walls. The camera turning by
- just the right amount. The perfect ambience sound
- in the perfect place.
-
- Realism Your map must be totally convincing. As said,
- shade plays a large part in this, but so does the
- map itself: are the walls thick enough? Are they
- too thin? Does that texture belong here? Is it too
- noticable that this sprite always seem to turn to
- face you? Should you really use this type of
- monster here?
- Testing Lots! Play the level on your own. Play in in coop.
- DukeMatch it for hours (if you can't play in it
- for hours, something's wrong). Fine-tune it: is
- the window at just the right height? Is that
- elevator positioned in the perfect place?
- Testing is really important - let your friends
- play with your level (without you being present)
- and listen to their comments.
-
- Difficulty If you're told that your level is too easy, don't
- make it more difficult by simply adding lots more
- monsters! That's a typical newbie mistake - rather
- place the monsters in better positions and redo
- the layout a bit.
-
- Light Next to shading (see above), the amount of light
- in a level is important. While a dark, gloomy
- level can create great atmosphere, keep in mind
- that few of us enjoy playing in pitch darkness.
-
-
-
-
-
-
- Chapter 5
-
- A walkthrough to creating a simple level
-
-
- This chapter will guide you to designing your first level.
- It's very much written like a cook-book - you don't have to
- understand exactly what you're doing; if you follow the
- instructions, it'll work out ok :)
-
- Details about working with BUILD can be found in the next
- chapter.
-
-
- 5.1 Planning
-
-
- Remember: we have to plan the map first.
- For our first map we'll build a very simple map: a storage house
- on a street. It will include a door, a window and have a sloped
- roof.
-
-
- 5.2 Getting ready
-
-
- If you're still in Windoze, get out. It'll do you good, and both
- Duke3D and Build run better under DOS.
-
- I'm assuming that you've installed Duke3D on your hard drive on
- C:\GAMES\DUKE3D and that your duke CD is in drive F.
-
- So now you'll have to copy the editor into your Duke3D directory
- as well:
- CD C:\GAMES\DUKE3D
- XCOPY F:\GOODIES\BUILD\*.*
-
- Now start up BUILD.EXE. A screenfull of legalese will pop up (in
- effect it says that you can't copy BUILD and should only design
- maps for the commercial version of Duke3D - obvious). Press ENTER
- to get rid of it and -voila!- you're in the 2D mode.
-
-
- 5.3 Creating a new map
-
-
- Press [Esc]. On the bottom, a small menu will pop up:
- (N)ew, (L)oad, (S)ave, save (A)s, (Q)uit
- Press [N].
-
- Asked 'Are you sure you want to start a new board?', you press
- [Y].
- Note to non-US users: the program reads your keyboard directly
- and thus expects you to press the key right next to [T] - for ze
- Germans, this would be [Z].
-
- The new map will automatically be called NEWBOARD.MAP -
- overwriting any file with that name in your directory. So be sure
- to use 'save (A)s' the first time you save your map.
-
-
- 5.4 The 2D screen
-
-
- The screen in front of you now is the 2D mode, where you'll be
- doing all the rough work like laying out your rooms and
- corridors. You are currently viewing your map from above.
- (Changing room heights, textures, etc are done in 3D mode, so be
- patient).
-
- The screen consists of several parts:
-
- 5.4.1 Map
-
- Most of the screen is given over to the map itself. Currently
- it's just displaying a grid.
- All line endpoints and all sprites will automatically align
- themselves with the grid (making it easy to design rectangular
- rooms, for example). You can change the grid size by pressing [G]
- several times: try it now. You'll see the grid size shrink and
- then disappear (meaning the grid is switched off and you can draw
- anywhere). Keep pressing [G] until you see the biggest possible
- grid. The biggest (meaning coarsest) grid has points which are
- 1024 units (that's 256 pixels) apart.
-
- To see the maximum possible size of your map, use the [A] and [Z]
- keys to zoom your map in and out. Try it, and then zoom back to a
- comfortable distance.
-
- The map also shows a red cross (your mouse cursor) and a white
- arrow (your current position).
-
- 5.4.2 *Message window*
-
- The message window is the bit just below the map: on the left it
- shows the text 'BUILD V041996 BUILD by Ken Silverman'.
- The right part of the message window currently just shows a red
- line - that's where the program will display messages and ask you
- for any info it needs.
-
- 5.4.3 Data window
-
- The data window displays info about currently selected objects
- (like sectors, walls or sprites) and can also show some help
- texts.
- Right now it should be empty.
-
- 5.4.4 Info window
-
- The info window also consists of two parts: on the left is your
- current (x,y) position in units as well as your viewing angle.
- On the right it shows how many resources you have used up
- already. Interesting, because it shows you the limits imposed by
- the Build engine: you can have a maximum of 1024 sectors, 8192
- walls and 4096 sprites.
-
-
- 5.5 Moving about
-
-
- As said, the white arrow is your position and heading on the map.
- You can move about in two ways:
-
- Cursor keys Like in the game, these move your forward and
- backwards. You can also rotate your heading.
- Interestingly, it also prohibits you from walking
- through blocking walls - this way you can see if
- the player will actually be able to walk
- everywhere he should be.
-
- Mouse The red cross is your mouse cursor and therefore
- (surprise!) moved with your mouse. Pressing the
- right mouse button transports your position to the
- mouse cursor - try keeping the button pressed and
- moving your mouse to see what happens.
-
-
- 5.6 *Creating a room*
-
-
- So, let's start by building the street first.
- Move your position somewhere into the middle of the map and zoom
- in until you're at a nice comfortable distance (three squares of
- the grid should be about an inch in length on your screen).
-
- Now point the mouse at the bottom left of your currently visible
- map and press the spacebar.
- A small green square appears on a grid point and the message
- window displays 'Sector drawing started.' And so it has - try
- moving the mouse about on the screen. See that white line? That's
- your first wall. Move it straight up by exactly seven squares and
- press the spacebar again.
-
- Another green square has appeared, and you've begun drawing a new
- wall. Move it exactly 14 squares to the right and press the
- spacebar again. Draw the next wall seven squares straight down
- and press the spacebar.
- The last wall you'll end exactly on the first point created, thus
- forming a neat rectangle.
-
- When you pressed the spacebar for that last square, the lowest
- wall started flickering. This means that it's the currently
- selected wall. Press [Alt]-[Tab] to get some info on the wall.
-
- Don't worry about what all that stuff means - the only thing of
- interest right now is the Wall number: the one on the bottom is
- wall number 4.
- Move the cursor near the other walls and note how the other walls
- get selected. The info at the bottom, however, is not
- automatically updated, so you'll have to press [Alt]-[Tab] for
- each wall again.
-
- Just press [Tab] now and have a look at the sector info. All that
- stuff is explained later in the FAQ, it's not important right
- now.
-
-
- 5.7 *3D mode*
-
-
- Make sure the white arrow is inside this room and press the
- [NumEnter] key. This is the Enter key on the bottom right of the
- numeric keypad (the big one in the middle won't work for us).
-
- Wow! 3D!
- You're now inside your room. It's still somewhat narrow and has
- walls consisting of ugly gray stone. That stone, by the way, is
- that ugly on purpose. It reminds you that you still have to find
- a nice texture for it.
-
- In 3D mode, two things are of particular interest:
-
- The mouse The mouse cursor has changed into a white cross -
- you use it to point at the things you want to
- change: walls, sprites...anything.
-
- FPS On the top left is the FPS (Frames Per Second)
- counter. This is the speed at which the screen is
- being redrawn.
- This number is terribly important while designing
- your level: if it drops too low (below 10), the
- level will play jerky and you won't enjoy it.
- The FPS are connected to the complexity of the
- displayed image - the more walls, sprites and
- textures the computer has to show on a single
- screen, the lower the FPS count will be.
- As the Levelord says: "Framerate is God!". So keep
- an eye on it.
-
- You can move about in 3D mode with the cursor keys. Don't use the
- cursor keys from the numeric keypad but the ones in the middle.
-
- You can jump back and forth between 2D and 3D mode by pressing
- the [NumEnter] key.
-
-
- 5.8 Raising the roof
-
-
- This is supposed to a street scene, right? So the first thing
- we'll need to do is raise the roof.
-
- Point at the ceiling and press [PgUp]. You can see it move
- upwards a bit, pulling the walls with it. Point at the wall in
- front of you and press [PgUp] again. That's another way to raise
- the ceiling.
-
- Raise the roof until you reach a height you feel more comfortable
- with. The room should now resemble a small aircraft hangar.
-
-
- 5.9 Textures
-
-
- Now for some magic: let's change the appearance of the walls and
- floor.
-
- 5.9.1 The floor
-
- The floor is first: we'll change it from a simple and ugly stone
- to a street. Point at it and press [V].
-
- The screen clears, showing the current texture at the top left
- and the number '0' at the bottom left. This screen contains all
- floor textures you have used on your map so far, and the number
- '0' is the number of the currently selected texture.
-
- Press [V] again: now you'll see a list of _all_ textures in the
- game, including things which are actually sprites (like the
- weapons), but can be usd as textures if you want (although
- they'll usually look weird).
- You can move your cursor (the white box) about with the cursor
- keys - try it.
-
- Have a look at all the possibilities.
- Now press [G] (meaning Goto). The program will ask you 'Goto
- tile:' on the top left. Use the backspace key to erase the
- currently shown number and type '815'. Press [Enter].
-
- Voila! The floor changed its appearance and now looks more like a
- street.
-
- 5.9.2 The roof
-
- Now for the roof. The street has sky above it, right? So, using
- [V] again we'll select tile number 89.
-
- This looks weird, not like the sky at all. So we parallax it:
- point at the roof and press [P].
- Much better! Move around a bit, using [Ctrl]-[A] and [Ctrl]-[Z]
- to look up and down. (Yes, if you look too high, the texture will
- mess up - it's the reason most outside areas are so high and
- narrow in the game. Keep your eyes low for now :)
-
- 5.9.3 Flying about
-
- There are three movement modes available to you in the 3D view:
-
- Game Mode Here you walk around like the player in the game.
- Use [A] to jump and [Z] to duck.
-
- Height Lock In this mode, you're always at the same height
- above the floor. Use [A] and [Z] to raise and
- lower yourself.
-
- Float Mode You're completely unaffected by the floor and can
- smoothly change your height with the [A] and [Z]
- keys.
-
- Use the [CapsLock] to change between these modes.
-
- 5.9.4 The walls
-
- Currently we're still sitting in a walled-in box. Let's make this
- look even more like a street.
-
- Point at the west wall and give it the texture number 794.
- Now this looks more like a house. However, I bet the windows are
- not perfectly aligned with the ground and you only have half the
- lowest row showing.
-
- So let's change the orientation of the wall texture. Point at the
- houses and press [O]. Hmm, the texture now hangs from the roof
- instead of the floor.
- Still not good enough. Press [O] again and raise the ceiling
- until you have three rows of windows, looking just right. Walk up
- close to it, making sure it looks ok.
-
- Now we'll copy this texture to the other four walls: Point at the
- west wall again and press [Tab]. This copies the texture into
- memory, causing some text to appear: 'Lo = 0/hi = 0/USED= 1/MEM =
- 8192'. (Of interest is only the 'USED' value - it shows how often
- we have used this texture already).
- Point at the three gray walls in turn and press [Enter] on each.
-
- Much better. Now we're standing on a street (or a courtyard).
- Note how neatly the textures fit together in the corners? That's
- because we stuck to the grid while designing this room in 2D
- mode. All textures have width and height in a multiple of 8, same
- as the grid. So stick to the grid, and you'll be ok.
-
- Last thing to do now is to make our house stand out. The street
- is on the north edge of our house, so point at the south wall and
- give it the texture number 723. This changes our house to a
- darker, more brooding one.
-
-
- 5.10 Building the house
-
-
- So far we have a street but no house.
-
- To design the house, we first drop back into 2D mode: press
- [NumEnter].
-
- 5.10.1 The house sector
-
- Press [G] again, making the grid a bit smaller (exactly by half,
- in fact). This is now the second-biggest grid available to us.
-
- Point on the grid just below the lower left point of the street
- and press [Spacebar]. Don't draw on the point itself, but one
- grid unit below it - if you made a mistake, press [Backspace] and
- try again.
-
- Draw a line to the right parallel to the street, along its whole
- length. Press [Spacear] under the bottom right point of the
- street. That's the first inside wall of the house. The next wall
- goes straight down by 8 grid units.
- Keep going until you have a rectangle defining the inside of your
- house.
-
- 5.10.2 Fixing the house sector
-
- Move the white arrow inside the house sector with the mouse
- (notice that you can't move from the street to the house with the
- cursor keys, as there's a thin line of nothing (solid rock)
- between the street and the house) and switch into 3D mode.
-
- Yuck, there's the gray stone again. Again, we first raise the
- roof to a comfortable height (don't make it too high - look at
- the room you're in now to get an idea of the proper height).
-
- Now that we have a (somewhat long and narrow-looking) room, we
- fix the floor first. Let's make a red carpet on a wooden floor,
- like the one we saw in the Bank Roll level.
-
- 5.10.2.1 The carpet floor
-
- Point at the floor and give is texture number 749. Hmm, the
- floorboards look a bit wide. Point at them and press [E] (toggles
- between enlarged and normal floor). Now the wood looks better.
-
- Now how will we do the carpet? After all, we don't want wall-to-
- wall carpeting, we want the wood to peek out at the edges.
-
- Since a sector can only have one floor texture, the answer is to
- create a second sector inside the house sector. A smaller one,
- with the same roof and floor height as the first one, but a
- different floor texture.
-
- So we pop back into 2D mode and design a second sector inside the
- house. It looks just like the house sector, but is a bit smaller
- (one grid unit distance to the walls).
-
- Place the white arrow in the middle of our new sector and press
- [NumEnter].
- Whoops! A message appears: 'Arrow must be inside a sector before
- entering 3D mode'. What happened?
- Place the arrow in the narrow space between the old house sector
- and the new one and press [NumEnter] again. Whooo - tight!
- You see, the old sector is now doghnut-shaped - we've created a
- solid block of stone right in the middle of it.
-
- Go back into 2D mode. Point inside the new sector and press
- [Alt]-[S].
- The walls now turn red, and the message window says 'Inner loop
- made into new sector.'.
-
- Back in 3D mode we see that everything is ok now - we have our
- original house back. No sign of the new sector, though.
- That's because the new sector automagically has the same floor
- and ceiling of the original sector. Point at the middle of the
- floor, press [V] and select texture number 899. See? There's our
- carpet.
- Play about raising and lowering the roof and floor of the carpet
- sector to get a good understanding of what we've done just now.
-
- When you're done, set the floor and roof of the carpet sector to
- the same as the house sector and give all four walls a nicer
- texture: 783. Remember that you can use [Tab] and [Enter] to make
- life easier.
-
- 5.10.2.2 Nice walls
-
- Hmmm. The walls are suposed to have a wooden toe-rail along the
- bottom and a dark stripe near the ceiling, and currently they
- look wrong.
- Looks like we'll have to shift the texture up a bit: point at one
- of the walls and press [Shift]-[Num2] (that's the '2' key on the
- numeric keypad).
-
- See it move up a bit? Keep pressing [Shift]-[Num2] until the
- wooden toe rail is exactly right on the floor (walk up close to
- the wall to make sure no single line of brighter pixels is
- peeking underneath the wood). Now the wall is so high that the
- texture repeats on the upper part, so we'll lower the roof a bit.
-
- Sinve the texture is attatched to the roof, this lowers the whole
- wall into the floor. Point at it and press [O] (for Orientation).
- Move the roof again and note that the texture is now attached to
- the floor, not moving with the roof.
-
- Make the texture look good again by using [Shift]-[Num2]. Then
- lower to roof until the wall looks just perfect. Don't forget to
- lower the roof of the carpet sector by the same amount, otherwise
- it won't look right.
-
- If the other walls are not looking ok, point at the wall you've
- been working on and press [.]. This auto-aligns the textures of
- all walls (you might have to press [O] on the other three walls
- as well).
-
- 5.10.2.3 Finally, the roof
-
- The roof also isn't looking to good so far. Give it the texture
- number 182. And change the roof texture of the carpet sector to
- match, of course :)
-
- 5.10.3 Saving your work
-
- Nice. Now just so we don't loose everything, go back into 2D
- mode, press [Esc] and [A] (save As). Erase the name 'NEWBOARD'
- with [Backspace], type [DEMO] and press [Enter].
-
- Now no matter what happens, we won't loose our work so far.
-
- 5.10.4 Building a doorway
-
- The house is well and good, but we're missing something
- important: a doorway out to the street.
-
- To create one, we'll need to be in 2D mode and create a sector
- connecting the street and the house.
-
- Move to the right of the house and zoom in a bit so you can see
- the grid very clearly. Move the cursor just underneath the white
- line defining the top edge of the house. See that little black
- dot on it just above the red cross? Move the cross until the dot
- is exactly three grid squares from the right edge of the white
- house sector and press [Ins].
-
- A small green square appears: we've inserted a point on the white
- line, splitting it in two. Insert another point on the same line,
- two grid squares to the left of the first one.
-
- Now do the same thing to the bottom part of the street sector:
- insert two points just above the points on the house sector.
- These four new points will now define our doorway sector. Notice
- that the doorway will share two lines: the bottom one will also
- belong to the house, while the top one will connect to the
- street.
-
- Now build the door sector: point at the bottom left point and
- press [Spacebar], starting a new line. Point at the point on the
- bottom right and press [Spacebar] again. Keep doing this with the
- top right and the top left point. End the final line on the
- bottom left point, creating a rectangle which will immediately
- turn partly red.
-
- That's our new doorway sector. Look at it: the top and bottom
- lines are red (two-sided lines) and the left and right ones are
- white (one-sided).
-
- Let's view this in 3D: place the arrow on the street and switch
- into 3D mode.
-
- Doesn't look too good so far, does it? The doorway reaches all
- the way into the sky, appearing all wrong.
- So let's make it lower: walk into the doorway, point at one of
- the walls and keep pressing [PgDn] until the roof comes into
- view.
- The roof looks a mess because it's still parallaxed (the doorway
- took on the setup of the street sector - notice the floor is
- asphalt), so press [P] on it.
-
- Take a few steps backwards into the street and change the height
- of the doorway until you're happy with it (it should end just at
- the top of the dark windows).
- The walls look a bit messy, both over the doorway and inside it.
- That's because their textures are attached wrong - press [O] on
- them. Much better.
- Also change the doorway sectors floor, roof and wall textures to
- 773.
-
- Now we have a house which we can leave through a doorway and walk
- into the street!
-
- 5.10.5 Adding a window
-
- So, what's a window? Easy: just like a doorway, but with a raised
- floor and some glass in it.
-
- Since you now know how to build a doorway between the street and
- the house, go ahead and build another one somewhere to the left
- of the first doorway.
-
- Got two alike doorways next to each other? Textures looking ok?
- Right, step into the street. Point at the floor of the second
- doorway and press [PgUp] to raise it right up to the bottom of
- the black windows (looks better).
- All right! You've got yourself a window!
-
- However, it still doesn't look good - it's too high up, we can't
- look out comfortably. So, lower the roof and floor of the window
- sector until you can easily look into the house.
-
- Better, but now it doesn't fit the texture on the street as
- neatly anymore. So we'll use [Shift]-[Num8] to shift the wall
- texture down until it looks right.
- Notice how you're only shifing the wall texture over the window?
- Each section of a wall (separated by a point) can have its own
- texture, so you'll have to shift each walls texture.
- Remember that you can use [.] to auto-align textures for you (it
- auto-alignes all walls to the right of the one you pointed at, so
- shift the texture on the leftmost wall).
-
- 5.10.6 Glass
-
- Now we only need to add some glass into the window (so we can
- shoot it, yaaay!).
- Still in the street, point on the wall below the window and press
- [M]. The window will be walled closed with the ugly gray stone
- texture again. Point at it and give it the texture number 503.
- Voila! A glass pane!
- However, the white reflections on it loks wrong. Press [T] twice
- to make the window more transparent.
- You can also use [F] (Flip) and [Num4] as well as [Num6] to
- change the appearance of the window. (Of course, you can use
- these keys on any wall texture). If you make a mistake, you can
- reset the wall be pressing [/].
-
- Remember to fix both sides of the glass pane.
-
- Now, all we have to do is make the glass breakable: point at it
- and press [B] (blocking movement) and [H] (hitscan on, meaning it
- can be shot).
-
- A glass pane on the very outside doesn't look to good, though -
- it should be in the exact middle of the window sector. Besides,
- it'll mess up the street texture when shattered.
-
- So, first we'll define a line where the glass will be: in 2D
- mide, insert a point in the middle of the left and right walls of
- the window sector. Point at the first point and (using
- [Spacebar]), draw a line across to the second point. The message
- 'Sector split.' will appear - the window sector is now made up of
- two separate sectors, and we'll put the glass on the line
- dividing them.
- But first, press [B] at the new line in 2D mode until it looks a
- normal red. Do the same for the upper line (where our glass is
- right now).
-
- Back in 3D mode, we'll remove the old glass pane by pressing [M]
- at it and insert the new pane by pointing just inside the window
- sector and pressing [M] again. Fix the window up using [Num4] and
- [Num6] and don't forget [T], [B] and [H].
-
- 5.10.7 The sloped roof
-
- Remember we wanted to slope the ceiling of the house so it looks
- a bit like an A-frame?
- Well, of course each sector can only be sloped one way, so we'll
- have to split the house sector (and the carpet sector!) again:
-
- Insert a point in the middle of each horizontal wall in the house
- (the house walls and the carpet sector walls) so you get four
- points underneath each other.
-
- From the top point, draw a line to the one just below it. The
- message window will say 'Loops joined.'. Keep going: connect the
- two points on the carpet sector ('Sector split.') and the lower
- two points ('Sector split.').
-
- Now, still in 2D mode, we define the 'hinges' of the sloping
- ceiling. We'll hinge the roof in the middle, so first point
- inside the carpet sector just to the left of the new line and
- press [Alt]-[F]. This makes the selected line (the blinking one)
- the first line in the sector the mouse cursor is in.
- Do the same for the second carpet sector (the one on the right)
- and with both house sectors.
-
- Do the same for the second carpet sector (the one on the right)
- and with both house sectors.
-
- Now switch to 3D mode, point at the roof and press '[' and ']' to
- tilt the ceilings. (You'll have to raise the ceiling a bit - use
- [.] to realign the walls afterwards).
- If the ceiling tilts wrong, you've messed up the [Alt]-[F] bit.
- Make sure you've selected the right line at try again.
-
- You can use [/] to make a ceiling straight again.
-
-
- 5.11 Trying it out
-
-
- Let's try our new level out. Place the arrow in the street and
- press [ScrollLock] to set the dim red arrow which shows your
- starting point in the game.
- Caution: if the starting point is outside a valid sector, the
- game will crash if you try to run the map!
-
- In 2D mode, press [Esc], [Q] [Y] [Y] to exit the editor, saving
- your map.
-
- Now start up Duke3D by typing
- DUKE3D -map DEMP.MAP
-
- Fun! Walk through your creation, smash the window, look about.
-
- However, it sure gets old fast - plain walls with no decorations,
- and where are the enemies?
-
-
- 5.12 Decorations
-
-
- Let's keep our decorations simple: a flowerpot in the corner, a
- picture on the wall, a lamp on the ceiling and a burning barrel
- in the street.
-
- First call up Build again:
- BUILD DEMO.MAP (press [Enter] twice quickly)
-
- We find ourselves in 3D mode, at the player starting point. Walk
- inside the house, point somewhere at the floor and press [S]
- (insert sprite).
- Again, we're confronted with the ugly gray wall, this time
- standing upright on the floor.
-
- Try walking around it - note how it always faces you?
- Press [R] at it and see how it changes into a flat piece of
- paper. You can change its heading in 2D mode by pointing at the
- sprite (the small circle with the tail sticking out of it) and
- pressing [<] and [>].
-
- Back in 3D mode, press [R] at it again - now it's flat on the
- floor.
-
- 5.12.1 The flower pot
-
- Make the sprite stand up again with [R] and press [V] to select a
- different sprite (number 1025). The wall changes into a flower
- pot!
- By the way, notice that sprite 1025 looked differently in the
- selection list? The pink bits will be transparent when the sprite
- is used.
-
- Now shift the flower pot into a corner: in 2D mode, make the grid
- a bit finer, point at the flower (now called BOTTLE7 by the
- program) and move it about by pressing and holding the left mouse
- button (you can shift the endpoints of walls in the same way,
- btw).
-
- All right! Now we have a flower pot in the corner of the room.
- Press [Tab] at it and use [S] in 3D mode to place some more pots
- on the floor. They will automatically shatter when hit.
-
- In 2D mode, the sprite appears pink - this means that the 'block
- moveemnt' flag has been set, and you can't walk through it. If
- for some reason you want to allow the player to walk through a
- sprite (fire, for example), press [B] at the sprite and watch it
- change color.
-
- 5.12.2 The picture
-
- The next sprite will be a picture on the wall.
- Point at the south wall and press [S] again. The flower pot
- appears again, but since we placed it on a wall, it's
- automatically flat already.
-
- Use [V] to change it into sprite number 1075 - a framed picture.
- Use [PgUp] and [PgDn] to position it on the wall.
-
- 5.12.3 A hanging lamp
-
- Next we'll hang a lamp from the ceiling.
-
- Point at the middle of the floor and press [S]. Change it into
- sprite number 979 (a hanging lamp).
- Well, not exactly hanging yet. So point at it and press
- [Ctrl]-[PgUp] to move it right up to the ceiling (yes,
- [Ctrl]-[PgDn] will place a sprite on the floor).
-
- 5.12.4 The burning barrel
-
- Finally, we'll place a burning barrel on the street. Walk outside
- and place a sprite number 1240 somewhere on the street.
- Note that this sprite will automatically animate to look like a
- burning barrel. If you had chosen one of the other three
- animation frames (sprites 1241 to 1243), it wouldn't have worked
- - the flames would appear 'frozen' (try it).
-
- By the way, you can remove a sprite by pointing at it and
- pressing [Del].
- You might also want to play around with the [Num2], [Num8],
- Num[4], [Num[6] and [/] keys.
-
- 5.13 *The enemy appears*
-
-
- We're still missing opposition.
-
- So, go back into the house and place a sprite number 2000 in the
- middle of it.
- Ah, a PigCop! Try walking around it - note how you're always
- shown the correct side of the monster?
-
- Place another one next to the first one, but as number 2001.
- This one isn't moving, and the program calls it PIGCOPSTAYPUT
- (check it in 2D mode).
- All monsters have a STAYPUT frame - it means that they will walk
- around normally, but never change the sector they started in.
- Great for setting up ambushes.
- It also means that our second PigCop won't dare to leave the
- carpet :)
-
- Here's a cute trick: try making one of the cops transparent [T]
- to create a ghost :)
-
- Start the game up again, switch to God mode (type DNKROZ in the
- game) and watch the different behaviour of the two monsters.
-
- Note that you can place monsters in different poses to have them
- start up in them. For example, you can place a PigCop number 2045
- (lying down) behind a low wall...
-
-
- 5.14 The other players
-
-
- All that's missing now is to set up the coop and DukeMatch
- starting positions of the other players. You'll need seven of
- each (the red arrow is the eight one for both coop and DukeMatch
- positions).
-
- Simply place sprites number 1405 (called APLAYER) everywhere you
- want a DukeMatch starting spot (be fair!).
- To differentiate the coop starting positions (which are usually
- all in a bunch somewhere) from the DukeMatch spots, point at them
- in 2D mode, press [Alt]-[T], [1] and [Enter] to give them a lo-
- tag of 1.
-
-
- 5.15 Taking it from here
-
-
- All right! Your first level!
-
- It's still a bit simple, so read through the next chapter and
- play around (save it first). The trick is to experiment as much
- as possible!
-
-
-
-
-
-
-
- Chapter 6
-
- The BUILD Editor
-
-
- This chapter is intended as a reference to the BUILD editor,
- included on the CD. A big thanks to 3DRealms for giving us the
- very editor they used to design their levels!
-
- In this chapter, I'm describing the BUILD editor V041996 from
- 9/23/95. Press [F1] in 2D mode to see what version you've got.
-
- The program consists of two parts: 2D mode and 3D.
-
-
- 6.1 2D Mode
-
-
- 2D mode is used to design the sectors and place sprites
- accurately, much like a blue print.
-
- 6.1.1 The Screen
-
- The screen is split into four parts:
-
- 6.1.1.1 The map
-
- Most of the screen is taken in by the map.
- Shown on it are:
-
- The grid Made up of dark gray lines, the grid has 8
- settings (7 magnifications and Off). All objects
- snap to the grid as they are placed or moved.
-
- Sprites Small circles with a line indicating its facing.
- At high enough magnification, they will also
- display a tag:
- X Y NAME
- where X is the hi-tag, Y the lo-tag and NAME the
- name of the sprite as given in the NAMES.H file.
- A pink sprite is flagged as impassable.
-
- Points End points of lines are shown as small green
- squares.
-
- Walls Two types of walls are possible: one-sided walls
- are white, two-sided walls are red.
- Two-sided walls with the 'blocking movement' bit
- set are shown as pink, and glass (with the
- 'hitscan' flag set in addition) is a thick pink
- line.
- A wall can also display a rectangular sign at high
- enough resolution, showing the wall tags.
-
- Sector A sector is bounded by walls, and is not displayed
- as such (pity - DEU did a very good job of this,
- very useful). But if it is tagged, you can see a
-
- sign with the tag numbers on it, same as for walls
- and sprites.
-
- Mouse The mouse cursor is a red cross if grid locking is
- on and a white one if grid locking is off.
-
- Observer The observer (your position in 3D) is a white
- arrow.
-
- 6.1.1.2 *The Message window*
-
- This window shows the text 'DUKE NUKEM BUILD V041996 BUILD by Ken
- Silverman'. The right part is reserved for prompts like the Esc-
- menu.
-
- 6.1.1.3 The Data window
-
- The data window displays info about currently selected objects
- (like sectors, walls or sprites) and can also display some help
- texts.
-
- 6.1.1.4 The Info window
-
- The info window also consists of two parts: on the left is your
- current (x,y) position in units as well as your viewing angle.
- On the right it shows how many resources you have used up
- already. Interesting, because it shows you the limits imposed by
- the Build engine: you can have a maximum of 1024 sectors, 8192
- walls and 4096 sprites.
-
- 6.1.2 The mouse
-
- Most of the time you'll have your right hand on the mouse and the
- left one on the keyboard.
-
- 6.1.2.1 Move
-
- Moves the mouse cursor (really!). Is also used to shape the
- selection box together with the [RightShift] and [RightAlt] keys.
-
- 6.1.2.2 Left button
-
- Used to drag a selected object or group of objects.
-
- 6.1.2.3 Right button
-
- Places the player at the mouse position.
-
- 6.1.3 The keyboard
-
- All keys named NumXXX are keys from the numeric keypad.
-
- 6.1.3.1 Esc
-
- Pops up the Esc-menu: (N)ew, (L)oad, (S)ave, save (A)s, (Q)uit.
-
- New starts a new map (after confirming with you).
-
- (L)oad pops up a selection list of all .MAP files
- (Caution! It doesn't ask you if you're sure, so
- save first before loading a new level. If
- necessary, abort the selection process with
- [Esc]).
-
- (S)ave saves the map under its current name, overwriting
- any map with the same name on the disk without
- comment. New, unnamed levels are automatically
- called NEWBOARD.MAP.
-
- save (A)s asks you for a name to save the current map under.
- All new maps should first be given a name this
- way. Beware that it will overwrite any map with
- the same name without comment.
-
- (Q)uit will quit the editor after confirming with you and
- offering to save your current work.
-
- 6.1.3.2 Cursor keys
-
- Move the player position. The player is clipped, so use the right
- mouse button to move if necessary.
-
- 6.1.3.3 NumIns and NumDel
-
- These keys will pan the player position sideways.
-
- 6.1.3.4 Spacebar
-
- Draw new sectors. The program is bright enough to know when
- you're drawing a new sector or adding to an existing one. Use
- [Backspace] to back up to the last point plotted.
-
- 6.1.3.5 NumEnter
-
- Toggles between 2D and 3D mode.
-
- 6.1.3.6 RightShift
-
- Used together with the mouse to select a rectangular region of
- objects (points and sprites) to move. Press again to deselect.
-
- Interesting note: if you drag a sprite normally (using the left
- mouse button), the sprite will be clipped, meaning it can't pass
- over high walls, into door sectors, etc. But if you select it
- with the right shift key first, you can move it anywhere you
- want. Real useful trick, this.
-
- 6.1.3.7 Control-RightShift
-
- Select all points of a sector, which can them be dragged with the
- left mouse key and stamped with [Ins].
-
- 6.1.3.8 RightAlt
-
- Use together with the mouse to select all sectors within a
- rectangular area. Before moving the mouse, press [Ins]. Now the
- selected sectors can then be dragged with the mouse and stamped
- with [Ins] or you can rotate them with [<] and [>].
- If you load a new map right after selecting sectors, you can even
- stamp the old sectors into the new map.
-
- To copy a sector properly is non-trivial - see 'How do I copy a
- sector' below.
-
- 6.1.3.9 Ins
-
- Insert something. If some objects are selected, it will insert
- these (points or sectors) - don't forget to drag them afterwards.
- If nothing is selected, it will insert a point on the current
- line.
-
- 6.1.3.10 Del
-
- Delete a sprite.
-
- 6.1.3.11 RightControl-Del
-
- Delete the current sector (the one the white arrow is in).
-
- 6.1.3.12 A and Z
-
- Zoom in and out.
-
- 6.1.3.13 G
-
- Change the grid size.
-
- 6.1.3.14 L
-
- Toggle grid locking.
- The color of the mouse cursor changes accordingly: red for
- locking on, white for off.
-
- 6.1.3.15 J
-
- Join two neighboring sectors. Press [J] in the first sector and
- again in the adjacent one. The adjacent one will take on all
- settings (ceiling height, textures, etc) of the first sector.
-
- 6.1.3.16 Alt-S
-
- Turn an inner sector into player space (used to create sectors
- within sectors).
-
- 6.1.3.17 S
-
- Insert a sprite. You can store a sprite in 3D mode by pressing
- [Tab] on it, making it the default sprite to insert.
-
- 6.1.3.18 B
-
- Toggle the 'block movement' flag on a line or sprite.
-
- 6.1.3.19 C
-
- Turn a line into a circle - move the mouse to change the circle.
-
- [+] [-] changes the number of points on the circle.
-
- [Spacebar] draws the circle.
-
- [C] aborts it.
-
- 6.1.3.20 T
-
- Set the sector lo-tag.
-
- 6.1.3.21 H
-
- Set the sector hi-tag.
-
- 6.1.3.22 Alt-T
-
- Set the sprite or wall lo-tag.
-
- 6.1.3.23 Alt-H
-
- Set the sprite or wall hi-tag.
-
- 6.1.3.24 E
-
- Change a sprites status list number.
- ## Anybody know what this does, exactly? What's a status list
- number?
-
- 6.1.3.25 < and >
-
- Change the angle of a sprite or selected sector. Use [RightAlt]
- to select sectors.
-
- 6.1.3.26 Shift-< and Shift->
-
- Change the angle of the sprite or selected sector in smaller
- increments.
-
- 6.1.3.27 [ ]
-
- This allows you to search backwards or forwards for a certain
- sector or wall. Select the tags to look for via [F8] (for walls)
- or [F9] (for sectors) and press '[' to search backwards and ']'
- to search forwards.
- If the sector or wall is found, the map will jump to it, placing
- the cursor at one of the points (probably the first one of the
- sector/wall).
-
- 6.1.3.28 '-M
-
- Pressing ['] and [M] together brings up a memory status window.
- Caution: I don't recommend using this option as BUILD gets
- unstable afterwards and will crash upon switching to 3D mode.
-
- Total Tiles Bytes taken up by all selected tiles?
-
- Total Sprites Bytes taken up by all selected sprites?
-
- Total Actors Bytes taken up by all actors (now what's that?)
-
- Total Memory Bytes needed for this map?
-
- Total W/Duke Bytes needed to run this map together with Duke3D?
-
- 6.1.3.29 '-3
-
- Pressing ['] and [3] together changes the tag display mode (very
- useful feature, this):
-
- 0: No tags displayed
- 1: Show sector tags only
- 2: Show wall tags only
- 3: Show sprite tags only
- 4: Show all tags
- 5: Show item tags only
- 6: Show tags of current sprite only
-
- 6.1.3.30 F1
-
- Shows a short help screen as well as the version number of BUILD
- (currently V041996).
- ## According to this helpscreen, [']-[1], [~], and [']-[9] should
- be doing something as well but they don't - anybody with more
- luck than me?
-
- 6.1.3.31 F2
-
- Increments the players x-position by one unit. Seems like a
- useless feature and my guess is that [F1] decremented the players
- position before 3DRealms turned it into a help button.
-
- 6.1.3.32 F3
-
- Decrements the players y-position by one unit.
-
- 6.1.3.33 F4
-
- Increments the players y-position by one unit.
-
- 6.1.3.34 F5
-
- If you are in a valid sector, this option will show some general
- info about your map, like its name and the number of items in it
- (the blue numbers mean the number of each item only found in
- multiplayer mode).
-
- This is particularily interesting if you want to make sure that
- you've got a good weapon mix with enough ammo and goodies.
-
- 6.1.3.35 F6
-
- If a sprite is selected, this will show a small help screen
- listing the numbers of all (?) sector effectors and their
- function.
-
- Otherwise, some more really useful info about your map is shown,
- this time containing the next free tag and the amount of monsters
- placed.
-
- 6.1.3.36 F7
-
- This shows a help screen listing all (?) sector tags with their
- function.
-
- 6.1.3.37 F8
-
- Allows you to search for a wall with specific hi- and lo-tags.
- If a sprite is highlighted, you can search for the sprite via its
- tags, too.
- '[' and ']' start the search.
-
- 6.1.3.38 F9
-
- As [F8], but you can search for a sector instead.
-
- 6.1.3.39 F10
-
- Increments the angle of the player by one unit. Looks like a
- singularily useless function.
-
- 6.1.3.40 F11
-
- Displays the message 'Grabbed wall sprite 0' - ?? ##
-
- 6.1.3.41 F12
-
- Takes a .PCX screen shot.
- Turn off the Grid before you press [F12], as it isn't shown
- properly.
-
- 6.1.3.42 TAB
-
- Show info on the current sector:
-
- Sector The number of the sector.
-
- Firstwall The number of the first wall (set with [Alt]-[F]).
- Interesting because:
-
- * The floor/ceiling texture orientates itself
- on it.
-
- * The floor/ceiling uses this line as a hinge
- when tilting.
-
- * Blastable walls lower the ceiling until the
- first lines touch - if your wall has
- triangular holes in it, this may be why. So
- make sure your first line is the lowest
- one.
-
- Numberofwalls The number of walls bounding this sector.
-
- Firstsprite The number of the first sprite in ths sector.
- Hmmm...anybody know if the first sprite is of
- similar importance as the first wall? ##
-
- Tags The hi and lo tags of the sector (also shown in
- hex).
- Change with [H] and [T].
-
- Extra Describes as 'used by the game programer only'.
- Usually set to -1; anybody got details? ##
-
- Visibility The visibility in this sector, usually set to 0.
-
- Pixel height The height of the room in pixels.
- Each [PgUp] or [PgDn] in 3D mode changes this by 4
- (= 256 units).
-
- Ceiling Flags The ceiling flag, shown in hex.
- The flags (with the keys used to change them in
- 3D) are as follows (the rightmost bit being number
- 0):
- 0: Set if parallaxing [P]
- 1: Set if tilted '[',']'
- 2: Set if x and y are swapped [F]
- 3: Set if texture size is halved [E]
- 4: Set if x-flipped [F]
- 5: Set if y-flipped [F]
- 6: Set if texture aligned with first sector wall
- [Alt-F]
-
- (X,Y) pan The x,y amount the ceiling has been panned. Use
- the cursor keys for this.
-
- Shade byte The amount of shade on the ceiling.
- 0 is normal, < 0 is lighter, > 0 is darker.
-
- Z-coordinate The z-coodinate of the ceiling.
- Smaller means higher. Each [PgUp] or [PgDn] in 3D
- mode changes this by 1024 units (= 4 pixel).
-
- Tile number The number of the ceiling texture.
- Use [V] to change.
-
- Ceiling heinum Amount of tilt.
-
- Palookup number
- Color palette to use (0 is normal).
-
- 6.1.3.43 Alt-TAB
-
- Show info on the current wall or sprite.
-
- The wall info is as follows:
-
- Wall Number of the wall (note that red lines are
- actually two walls, so it's important which sector
- you're in when pressing [Alt]-[TAB]).
-
- X-coordinate X-coordinate of left side of wall.
-
- Y-coordinate Y-coordinate of left side of wall.
-
- Point2 Number of the next wall to the right in the same
- sector.
-
- Sector Sector the wall is in.
-
- Tags The hi and lo tags for this wall, also shown in
- hex.
- ## Anybody got a list of interesting tag numbers?
-
- Flags The flag (in hex) of this wall.
- The flags (together with the keys to change them)
- are as follows (0 is on the very right):
- 0: Set if wall blocks movement [B]
- 1: Set if wall has two different textures [2]
- 2: Set if tile is aligned to ceiling (0 if floor)
- [O]
- 3: Set if x-flipped [F]
- 4: Set if masking wall (like window) [M]
- 5: Set if 1-way wall [1]
- 6: Set if hitscan enabled [H]
- 7: Set if transparent [T]
- 8: Set if y-flipped [F]
- 9: Set if reverse-transparent (?) [T]
-
- Flags The flags for the sprites are as follows:
- 0: Set if sprite blocks movement [B]
- 1: Set if sprite is transparent (see bit 9) [T]
- 2: Set if flipped Left/right [F]
- 3: Set if flipped Up/Down [F]
- 4: Set if sprite is flat upright [R]
- 5: Set if sprite is flat on ground [R]
- 6: Set if sprite is single-sided [1]
- 7: ???
- 8: Set if hitscan enabled [Ctrl-H]
- 9: Set if very transparent, else slightly
- transparent (see bit 1) [T]
-
- Shade The amount of shade on the walls (smaller is
- brighter).
- Use [+] and [-] to change.
-
- (X,Y) repeat Used to stretch textures.
- Use the [NumCursor] keys to change this, press [/]
- to undo any accidential changes.
-
- (X,Y) pan Used to move textures.
- Use the [Cursorkeys] for this.
-
- Tile number The texture number used on this wall. Use [V] to
- set this.
-
- OverTile number
- The extra texture number for 1-way walls and
- masked walls.
- ## I'm not sure how this is supposed to work. On a
- wall with three textures (a window with glass on
- the maskable wall as well as two different
- textures above and below it) it stayed 0.
-
- Nextsector The number of the sector on the other side of the
- wall (-1 if there is none).
-
- Nextwall Number of the wall on the other side (only
- interesting if the wall is two-sided, otherwise
- it's -1)
-
- Extra Usually -1, and described as 'used by the game
- programmer only'. Which makes it irresistable :)
- ## Anybody got more info?
-
- Wall length Wall length in pixels. The grid at maximum size
- has a square width of 64 pixels.
-
- Pixel height Height of the wall in pixels.
-
- 6.1.3.44 ScrollLock
-
- Set the starting position to the current players position.
- Caution: if this position is set to an invalid position (outside
- a sector), the game will crash when you try to run this map.
-
- 6.1.3.45 Ctrl-T
-
- Toggle tag box display on the sprites, walls and sectors.
-
- 6.1.3.46 Enter
-
- Displays the text 'Highlighted line pointers checked'.
- ## Anybody know what this means? It sure doesn't protect you from
- invalid lines...
-
- 6.2 3D Mode
-
-
- 3D mode is where it's at! Here you stand right in your map and
- can change anything: floor/ceiling height, textures, etc. It's
- where you'll be spending most of your time.
-
- This mode is also what really makes BUILD stand out from other
- editors like DEU - you can spend a long time in here, fixing up
- your level to look just right. No more guessing around with the
- alignment, easily set the height of your rooms, see what
- everything looks like before you fire up the game
- itself...lovely.
-
- 6.2.1 The screen
-
- The screen shows the map as viewed from the players position. Two
- things deserve special note:
-
- FPS meter On the top left the current fps rate is shown.
- Keep an eye on this while editing and don't make a
- room so complex that the fps drops too low! Also
- remember that others may be using a slower
- computer than you, so lets keep the fps high, ok?
-
- Mouse Yes, the little white cross is the mouse pointer,
- no it doesn't change color according to the 'grid
- locked' status, and yes, you move it with the
- mouse :)
-
- Also, sprites displayed in blue (palette 1, change via [Alt]-[P])
- are only available in multiplayer mode.
-
- 6.2.2 The mouse
-
- Again, you'll be spending your time with the right hand on the
- mouse and the left on the keyboard.
-
- 6.2.2.1 Move
-
- Believe it or not, but moving the mouse actually changes the
- mouse cursors position on the screen, enabling you to point at
- anything you can see! Yes!
-
- 6.2.2.2 Left button
-
- Pointing the mouse at something, pressing the left mouse button
- and keeping it pressed keeps that object selected, even if the
- mouse pointer somehow strays from it (for example, when changing
- the height of an object).
-
- 6.2.2.3 Right button
-
- ## Anybody know if the right mouse button serves any useful
- function? I know of none (in 3D mode, that is!).
-
- 6.2.3 The keyboard
-
- Lots of funny buttons for you to press!
-
- 6.2.3.1 Cursor keys
-
- Moves the player around, just like in the game. Press [LeftShift]
- to speed up your movement.
- 6.2.3.2 CapsLock
-
- This key cycles through the three different movement modes
- available to you:
-
- Game Mode Here you walk around like the player in the game.
- Use [A] to jump and [Z] to duck.
-
- Height Lock In this mode, you're always at the same height
- above the floor of the current sector. Use [A] and
- [Z] to raise and lower yourself.
-
- Float Mode You're completely unaffected by the floor and can
- smoothly change your height with the [A] and [Z]
- keys.
-
- 6.2.3.3 PgUp and PgDn
-
- Allow you to change the height of the object you're pointing at:
- raise or lower ceilings, floors and sprites.
- If you point at a wall, the corresponding ceiling will change
- height.
-
- Press [Ctrl]-[PgUp]/[PgDn] to move a sprite exactly to the
- ceiling/floor.
-
- 6.2.3.4 V
-
- Change the selected tile or sprite.
-
- 6.2.3.5 Alt-V
-
- This is supposed to change something called a 'Groudraw height
- map'. To me it just looks like it's selecting a tile as well. ##
- Anybody knows what's going on here?
-
- 6.2.3.6 NumCursor keys
-
- On a wall, these keys change the size of the texture. This means
- you're able to re-use textures for many different things, scaling
- them exactly as needed (perhaps showing only a certain part).
-
- Using these keys on a sprite will change the size of the sprite.
- Very useful indeed.
-
- Finally, the textures on a ceiling or floor can only be resized
- using [E], so these keys just scroll the texture, enabling you to
- align it accurately.
-
- 6.2.3.7 Shift-NumCursor keys
-
- Usable only on walls and ceiling/floors (sprites will ignore the
- shift key and resize instead), these keys shift the offset of the
- texture.
- In effect you're moving the texture without resizing it.
-
- 6.2.3.8 /
-
- Used to reset a texture or sprite to normal (undoes the effects
- of [Shift]-[NumCursor] and [NumCursor]).
-
- 6.2.3.9 .
-
- This key will try to auto-align all walls to the right of the
- selected wall if they are using the same texture.
- Caution: this has caused my system to crash on several occasions
- - save before you try this!
-
- 6.2.3.10 F
-
- Flips the selected floor/ceiling 8 possible ways. Walls and
- sprites can only be flipped 4 ways.
-
- 6.2.3.11 Alt-F
-
- Determines whether the ceiling or floor texture aligns to the
- first wall. This is especially useful for tilted floors.
-
- 6.2.3.12 P
-
- Toggle parallaxing on floors or ceilings. This only works well on
- some textures (like 89..96, the cityscapes).
-
- 6.2.3.13 Ctrl-P
-
- Change the type of parallaxing used (three different types are
- available).
-
- 6.2.3.14 G
-
- This is supposed to give a floor height-mapping. ## Like
- [Alt]-[V], this doesn't seem to work for me.
-
- 6.2.3.15 E
-
- Toggles the tile size of floors/ceilings between normal and
- enlarged.
-
- 6.2.3.16 R
-
- Toggle floor/ceiling tiles between relative and absolute
- alignment.
- In absolute alignment, floor and ceiling tiles are aligned to the
- grid itself (thus allowing you to align them neatly to the usual
- rectangular floors).
-
- In relative alignment mode, the tiles align themselves to the
- first wall (set with [Alt]-[F] in 2D mode). This is very nice for
- odd-shaped, rotated, or moving sectors.
-
- 6.2.3.17 O
-
- Changes the wall texture orientation. A wall texture can start
- either on the floor or on the ceiling. This is particularily
- useful when building windows (make sure that the wall above and
- below looks ok) or DOOM-type doors (make sure the texture moves
- with the door).
-
- 6.2.3.18 B
-
- Toggle the 'block movement' flag on a wall. Usually used for
- glass panes, force fields or sector boundaries, as a one-sided
- wall always blocks movement anyway.
-
- 6.2.3.19 T
-
- Toggle the transparency flag on a wall or sprite.
- There are three stages: slightly transparent, very transparent,
- and opaque (normal). Of course, this only works on two-sided
- walls.
-
- Try it on monsters to create ghosts - pity it doesn't work on
- players >;)
-
- 6.2.3.20 M
-
- Point at the floor below a sector edge and press [M] to create a
- maskable wall. In effect, you're giving the sector edge a two-
- sided wall which is most often used in creating glass panes.
-
- 6.2.3.21 Shift-M
-
- Make a maskable wall just like with [M], but only on one side.
- This way you're able to create walls where you can only see
- through in one direction, for example.
-
- A window created this way will only show you the glass texture
- from one side. And you won't be able to shoot through it from the
- wrong side, either: it will be marked with floating bullet-holes,
- instead.
- When shattering it from the visible side, the bullet holes stay
- in the air...
-
- 6.2.3.22 1
-
- Create 1 one-way wall. Only possible on a two-sided line, this
- command will create a wall which only has a texture on one side.
-
- Monsters can see through this wall and will attack you, walking
- through the wall (if they're allowed to).
-
- 6.2.3.23 2
-
- If a wall consists of two sections (a top and a bottom one, like
- you find with windows), pressing [2] will allow you to separately
- edit the upper and lower texture.
-
- 6.2.3.24 H
-
- Toggles the hitscan bit on a two-sided wall. If this bit is set
- (default is off), the wall will react to bullets (shattering if
- it is glass, showing bullet holes if it is normal).
-
- If you set the hitscan bit on a sprite, the sprite will block
- bullets even if it doesn't block you. However, turning off the
- hitscan bit on a destructable sprite (like a bottle) has no
- effect.
-
- 6.2.3.25 TAB
-
- This remembers the current object (sprite or texture) and places
- it in the buffer.
- According to the Build documentation, it not only remembers the
- tile number, shade and texture setup, but also the cstat.
- Whatever that is.
-
- Some text appears, showing you what you have just selected: name,
- lo- and hi-tag, number of times used in map (only if you point at
- it), and MEM (amount of low RAM free?). If the graphic toggle is
- on (use [']-[G]), an image of the selected texture is shown as
- well.
- Press [TAB] again on the same texture to turn that display off.
-
- Use one of the keys below to paste the object back. Note that you
- have to use the big [Enter] key, not the one at the numeric
- keypad:
-
- 6.2.3.26 Enter
-
- Copy the selected object to whatever you're currently pointing at
- (meaning you can replace sprites and textures this way). Shade
- and (for textures) the x-repeat values are copied as well, while
- the y-repeat is modified to make the pixels square.
-
- 6.2.3.27 Ctrl-Enter
-
- Copies the selected texture to all walls in a closed loop.
- Use this to change the appearance of a whole room at once.
-
- 6.2.3.28 Shift-Enter
-
- Copy the shade value only.
-
- 6.2.3.29 Ctrl-Shift-Enter
-
- This function auto-shades a sector:
-
- Make one of the walls the lightest shade and another one the
- darkest one. Point at the lightest wall and press
- [Ctrl]-[Shift]-[Enter] - all walls on the loop will be smoothly
- shaded.
-
- Somehow, this function never worked very well for me: wall
- shading is very harsh and non-smooth, so I usually shade by hand.
-
- 6.2.3.30 '-ENTER
-
- Pressing ['] and [Enter] copies the tile only, leaving everything
- else (especially the shade!) as it is.
-
- 6.2.3.31 '-R
-
- Toggles the FPS display on and off.
- This is only good for taking screenshots, as the FPS is one of
- the most important considerations in level design.
-
- 6.2.3.32 '-D
-
- This is supposed to change the skill mode, but on my system only
- the text '(something something) not found' flashes up and nothing
- changes - skill mode stays at 1.
-
- 6.2.3.33 '-W
-
- This toggles the sprite display between several modes:
-
- Display all Sprites
- No Effectors (Sprites 1..10 are not displayed)
- No Actors (No players or monsters are shown)
- None (No effectors or actors shown)
-
- This is nice if you want to do some changes to the map without
- being bothered by monster images.
-
- 6.2.3.34 '-G
-
- This toggles the display of the selected texture (via [TAB]) on
- and off.
-
- 6.2.3.35 '-Y
-
- ## Listed as 'Toggle purple background', I haven't found out what
- it does yet.
-
- 6.2.3.36 '-T
-
- Allows you to change the lo-tag of the selected object.
-
- 6.2.3.37 -H
-
- Allows you to change the hi-tag of the selected object.
-
- 6.2.3.38 '-S
-
- Allows you to directly type a shade value for the selected
- object.
- Very nice for setting the shade on goodies to 128 (= -128, as 127
- is max. shade and you can't enter negative numbers) to make them
- very visible from far away.
-
- 6.2.3.39 '-V
-
- Changes the visibility of a sector (how fast it darkens with
- distance).
-
- 6.2.3.40 '-C
-
- Changes the global shade of a sector to the shade of the object
- currently selected.
-
- 6.2.3.41 '-Del
-
- ## Sets the cstat to 0. Anybody know what a cstat is?
-
- 6.2.3.42 Alt+-
-
- Changes the visibility of the current sector.
-
- 6.2.3.43 CtrlAlt+-
-
- Changes the global visibility for the whole map (careful with
- this!).
-
- 6.2.3.44 F1
-
- Shows a short help menu, listing the less-commonly used commands.
- Pres [F1] to remove it again.
-
- 6.2.3.45 F2
-
- Increments the players x-position by one unit. Seems like a
- useless feature and my guess is that [F1] decremented the players
- position before 3DRealms turned it into a help button.
-
- 6.2.3.46 F3
-
- Decrements the players y-position by one unit.
-
- 6.2.3.47 F4
-
- Increments the players y-position by one unit.
-
- 6.2.3.48 F5
-
- Nukes the 3D display, forcing you back to 2D.
- Strange function indeed :)
-
- My guess is that the system tries to display the same text it
- does in 2D mode and messes up the graphics along the way.
-
- 6.2.3.49 F6
-
- Same as [F5].
-
- 6.2.3.50 F7
-
- Same as [F5].
-
- 6.2.3.51 F8
-
- Same as [F5].
-
- 6.2.3.52 F9
-
- Rotates the players view left a bit.
-
- 6.2.3.53 F10
-
- Rotates the players view right a bit.
-
- 6.2.3.54 F11
-
- Changes the gamma correction (makes the screen lighter).
- This is not terribly useful, as the settings aren't saved and the
- gamma seems to reset when moving between some sectors.
-
- 6.2.3.55 F12
-
- Takes a .PCX screen shot.
-
-
-
-
-
-
- Chapter 7
-
- How to...
-
-
- This chapter is intended as a cookbook: how to create different
- effects.
- ## If you find out something new, please let me know and I'll add
- it here.
-
- 7.1 *Extracting the original maps*
-
-
- It's a very good idea to extract the original maps for Duke3D and
- see how 3DRealms did things. It has the additional effect of
- making you realize just how much work is in these levels and how
- much you'll have to work to achieve anything similar :)
-
- The command
- KEXTRACT DUKE3D.GRP *.MAP
- will extract all map files from Duke's group file.
-
-
- 7.2 *Abbreviations*
-
-
- In order to easily describe tags, sector effectors and the like,
- I use some abbreviations:
-
- Bomb Also called C9, it's a sprite with the tile number
- 1247 (yellow gas bottle), x-shrunken as narrow as
- possible. It is intangible to the player, but
- blows up when triggered.
-
- [x,y] The tags of a sprite or wall: x is the hi-tag, y
- the lo-tag.
- Example: [0,34] describes a hi-tag of 0 and a lo-
- tag of 34.
-
- (x) Tile number (refers to sprites, too).
- Example: (621) is the camera sprite.
-
- Controller A special sprite (tile numbers 1..10) which is not
- shown at game time and controls the environment in
- some way:
-
- S Sector effector
- Example: S [100,256] means to insert a Sector
- effector with the hi-tag 100 and the lo-tag 256.
-
- A Activator
-
- T Touchplate
-
- L Locked activator
-
- M Music and SFX
-
- L+ Locator
-
- C Cycler
-
- D Master switch
-
- R Respawn
-
- Sp Speed
-
-
- 7.3 Player starting points
-
-
- Player starting points are marked by sprite number 1405.
-
- You'll need to place at least 7 players (the player start
- position is automatically included, so you don't have to set a
- sprite there specifically for it).
-
- Dukematch starting points have no tags.
-
- Coop starting points have the tag [0,1].
-
- 7.3.1 Notes
-
- * As far as I know, you can place any amount of dukematch
- starting points.
- ## Anybody knows what happens with too many coop starting
- points?
-
-
- 7.4 Glass panes
-
-
- Glass panes are simply two-sided walls maskable walls (created by
- pointing on the floor in front of a two-sided line and pressing
- [M]) with the 'block movement' [B] and 'hitscan' [H] flags set.
- The texture has to be glass (503).
-
- 7.4.1 Notes
-
- * To create unbreakable glass, simply use a glass sprite
- instead of the glass texture.
-
-
- 7.5 Invisible forcefield
-
-
- Often, you'll want to place an invisible forcefield someplace (it
- ripples if hit, but doesn't damage the player).
-
- Simply build a glass pane, using sprite 230 instead. This tile
- can be made so transparent/dark as to be completely invisible.
-
-
- 7.6 Doorways
-
-
- A doorway is nothing but a sector connecting two other sectors.
- Simply lower the roof a bit, align the textures (use [O] and [.])
- and you're ready to go.
-
- 7.6.1 Notes
-
- * You can make arching doorways by splitting the doorway
- into several sectors and tilting the roof or even the
- floor.
-
-
- 7.7 Windows
-
-
- A window is simply a sector with a raised floor and a lowered
- roof which has been inserted into a normal wall.
-
- 7.7.1 *Setup*
-
- Follow these steps to insert a window into a standard wall (made
- up of one-sided walls):
- * We'll assume the wall goes from east to west.
-
- * In 2D mode, split each of the lines making up the wall
- twice where you want the window to be, forming a rectangle
- of points.
-
- * Connect these rectangles with lines; a new sector will be
- created. This is your window sector.
-
- * Switch to 3D mode. Raise the floor a bit and lower the
- roof of the window sector until the window looks about
- right.
-
- * If you want, insert a glass pane in the window sector.
- It'll look especially good if you split the window sector,
- adding the glass in the exact middle of the window sector
- instead of on the edge.
-
- * Align the textures. You can auto-align by pointing to the
- left-most wall and pressing [.].
-
- 7.7.2 *Notes*
-
- * Don't add the glass pane to the very outside of the window
- as the wall texture above it will mess up when the glass
- is shot. Place the glass on its very own line inside the
- window sector.
-
-
- 7.8 *Air ducts*
-
-
- Air ducts are just flat sprites in front of holes in the wall.
- They will break automatically.
-
- 7.8.1 *Notes*
-
- * Useful sprites are 407 (rotating fan) and 595 (metal
- grate).
-
- * Make the duct itself nice and narrow, about as wide as the
- grid at maximum size (1024 units or 256 pixels).
-
- * For the duct inside, you can use the textures 342 and 343.
- Use 341 for a hole broken in the duct.
-
- * If the above textures are used, the air duct sound is
- created automatically.
-
- * If the duct is only visible from one side, make sure the
- sprite is two-sided by pointing at it in 3D mode and
- pressing [1].
-
-
- 7.9 Angled surfaces
-
-
- To tilt a sector surface (roof or ceiling), point at it and press
- the '[' and ']' keys.
-
- 7.9.1 Notes
-
- * The surfaces will always use the first line of the sector
- as hinge. To set the first line, point at it in 2D mode
- and press Alt-[F].
-
- * To undo your changes, press [/].
-
- * Use RightShift-'[' or ']' for small changes and
- LeftShift-'[' or ']' for very small changes.
-
-
- 7.10 Secret places
-
-
- To mark a sector as secret, just tag it [0,32767]. A player will
- be credited for finding it as soon as the sector is entered.
-
-
- 7.11 Multiplayer sprites
-
-
- To make an object appear only in multiplayer (coop or DM) play,
- use Alt-P to give it a palette of 1.
-
-
- 7.12 Level-end button
-
-
- Also called the nukebutton, this sprite (142) is used to end the
- level.
- Tag it [0,x], where x can be:
-
- 32767 End level, go to status screen and then on to the
- next level.
-
- 1..11 End level, go to level 1..11
- (eg. [0,10] would take the player to the (secret)
- level 10).
-
- 7.12.1 Notes
-
- * To get the secret-level color on the nukebutton, set its
- palette to 14.
-
-
- 7.13 Level-end sector
-
-
- Tag a sector [0,65535] to end the level when a player enters this
- sector.
-
-
- 7.14 Cameras
-
-
- You can place cameras around the map, which will relay an image
- to one or more viewscreens.
-
- 7.14.1 Setup
-
- The security network consists of three objects:
-
- Channels A channel transports the video data from the
- camera(s) to the viewscreens. It is just a number.
-
- Cameras (621) [Mobility,Channel]
- They have to be sprites, and can be placed
- anywhere in a room, facing in any direction. Using
- the hi-tag, you can even set the camera mobility:
- higher numbers allow the camera to move through a
- wider arc.
- Some example numbers:
- 0: Immobile
- 128: Very jerky (too short) - not recommended
- 256: Normal panning
-
- Viewscreens (502) [Channel,0]
- Viewscreens have to be sprites, too.
-
- 7.14.2 *Notes*
-
- * The camera shade controls the down-angle: 0 is horizontal,
- -80 is most common, -128 is maximum down.
-
- * If several cameras share a channel, the viewscreen
- connected to this channel can cycle through all connected
- camera views.
-
- * It is advisable to hide the viewscreen behind a harmless
- forcefield (230), to cause the well-known purple circles
- when it's being shot at.
-
- * Mobile cameras shouldn't be flipped, as the animation
- isn't flipped as well.
-
- * The angle of the camera should point into the middle of
- the desired panning arc. The arc angle is easily
- calculated: 90 degrees = 512.
-
- * Don't place the cameras too close to the walls.
-
-
- 7.15 Demo cameras
-
-
- Demo cameras can be placed anywhere and will automatically film
- duke from the outside when recording a demo. Neat.
-
- 7.15.1 Setup
-
- The camera is just an S[ViewDistance,27]. Don't use the sprite
- itself.
-
- 7.15.2 Notes
-
- A ViewDistance of 7000 works fine.
-
-
- 7.16 *User-controlled force fields*
-
-
- A user-controlled force field is a standard force field which can
- be toggled on and off with a switch.
-
- 7.16.1 *Setup*
-
- * Build a standard forcefield somewhere (masked wall, tile
- number 663), but don't set the hittable or blocking flags.
- Tag the forcefield line [0,Channel].
-
- * Place an S[Channel,12], Palette 2, on each side of the
- force field.
-
- * Place a switch anywhere with tags [0,Channel].
-
- 7.16.2 *Notes*
-
- You can use a touchplate effector as well to toggle the force
- field.
-
-
- 7.17 Blastable walls (user control)
-
-
- Such walls can be blown up by detonating something close to them
- (a pipebomb, RPG, etc).
-
- 7.17.1 Setup
-
- * First build the wall with the hole already in it (usually
- consisting of several sectors with angled floors and
- ceilings).
-
- * In each of these sectors, place an S [Channel,13].
- On the wall to be blasted, place a (possible semi-
- transparent) crack [Channel,0] (546-549), facing the
- player. Fire extinguishers (916) can be used, too.
-
- * If you want, place bombs on both sides of the wall for
- realism [Channel,DelayUntilExplosion]. A delay of 8 is
- very short, while 2000 takes ages before it explodes.
-
- 7.17.2 Notes
-
- * A wall with a crack on each side will blow ok, but the
- other crack will remain hanging in mid-air.
-
- * Blastable walls retain no bullet holes until they blow.
-
- * Here the first line of a sector is important again - the
- floor and ceiling are moved together until the first wall
- sides touch. So if your wall shows some triangular holes,
- this is where to look: make sure your first walls (set
- with Alt-F4) are the lowest ones.
-
- * If you give the crack a palette number of 1, it can only
- be blown in multiplayer games.
-
- * It might also be a good idea to create a wall with a
- nicely blasted hole in it and cover it with a solid wall,
- thin as paper. Then blast this thin wall completely away,
- revealing the hole - this is often easier than laborously
- building a hole made up of dozens of sectors, each with
- its own sector effector...
-
- 7.17.3 Tips
-
- * Use texture 852 (blasted concrete) on the inside of the
- hole.
-
- * Carefully align the wall textures. Especially the sideways
- alignment is important, as the wall looks real bad if this
- is not done properly - use the [.] key.
-
-
- 7.18 Blastable walls (triggered)
-
-
- The work just like user-controlled blastable walls, except that
- they can only be blown by program control, not by the user.
- They are triggered by a T [0,Channel], and you can even add a
- time-delay from the moment T is activated to the explosion of the
- wall.
-
- 7.18.1 Setup
-
- * First build the hole just as outlined above.
- However, you won't need to place a crack.
-
- * In just one of the hole sectors, add a D [Delay,Channel].
- Delay ranges from 0 to 255, 255 being longest.
-
- * Place at least a bomb [Channel, Delay] in the same sector
- as D. Delay ranges from 8 (blow right away) to over 2000
- (take ages, can be used for nasty traps) with typical
- values being 8,16 or 32.
- For realism, place some of these on both sides of the wall
- as well.
-
- * Place a T [0,Channel] in any sector. It will go off as
- soon as the player enters the sector.
-
- 7.18.2 Notes
-
- * You can blow several walls open simultaneously, but don't
- use different delays - the world shakes, but the holes
- only appear when the highest-numbered D blows.
-
-
- 7.19 Conveyor Belts
-
-
- Conveyor belts are sectors which will transport any sprite on
- them in a certain direction.
-
- 7.19.1 Setup
-
- * S[0,24] in the conveyor belt sector, facing in the
- direction the belt should move.
-
- * Optionally, add a Sp[0,BeltSpeed] to change the belts
- speed.
-
- 7.19.2 Notes
-
- * You might have to rotate the sectors floor to make it look
- right - I've had a belt going one way and the texture
- scrolling another way...
-
- * To create running water, just set the sector tag to [0,1].
-
- * Typical conveyor belt tile is (1156).
-
-
- 7.20 *Mirrors*
-
-
- Mirrors are interesting in that they require a rather large room
- behind the mirror (check E1L1 for example). This room must be
- able to contain any part of the room visible in the mirror,
- otherwise you'll get graphics glitches.
-
- A mirror is in effect a one-sided wall (created by pointing on
- the floor in front of a two-sided wall and pressing [1]) with the
- texture 560.
-
- Finally, point at it and press [B] and [H] to set the 'block
- movement' and 'hittable' flags.
-
- 7.20.1 *Notes*
-
- * You can make the mirror unbreakable by not setting the
- 'block movement' and 'hittable' flags. It will still be
- broken by an explosion close to it, though.
-
- * To have Duke say 'Damn I'm looking good' when pressing on
- the mirror, give it a lotag of 252.
-
- * Mirrors have a range limit - if they're viewed from too
- far away, they'll default to showing a parallaxed sky
- texture.
-
- * If the 'mirror room' is too small, weird graphic glitches
- can occur.
-
- * Also, the 'mirror room' has to have the same floor/ceiling
- height as the room being viewed - you'll get glitches when
- jumping/ducking if it isn't.
-
- * If you set clipping and walk through the mirror, you:
-
- - will die if you leave the mirror room,
-
- - get stuck if you deactivate clipping, and
-
- - notice graphic glitches underneath the mirror
- (viewed from inside).
-
-
- 7.21 *Garbage cans*
-
-
- Garbage cans (1232) can spawn something else when shot - just set
- its tag to [0,ObjectToSpawn]. You can't spawn every possible
- object though (I tried toilets :), but things like shotgun ammo
- (49) or, indeed, other cans work well.
-
- 7.21.1 Notes
-
- * Rubbercans (1062) can't be made to spawn something, they
- always create rats. Although, of course, this can be
- changed in the GAME.CON file (line 204).
-
- * A garbage can can spawn a garbage can :)
- This way you can also see that the default sprite size is
- too large: the spawned cans are quite a bit smaller than
- the original ones.
-
-
- 7.22 Revenge of the dancers
-
-
- When a dancer is shot, you can make an enemy appear. Just set the
- dancer sprite to [Channel,0] and place one or more R
- [SpriteToAppear,Channel] anywhere.
-
- 7.22.1 Notes
-
- * You can make lots of things appear, I've even had success
- with burning barrels (1240).
-
- * If you try to spawn an invalid object (like another dancer
- or a sign), the respawn spark appears (including the
- sound), but nothing warps in. This might be used to faze
- players.
-
- * A dancer can spawn a weapon, preferably in the same place
- as the dancer. This makes it look as if the woman was
- armed (wonder where she hid that Devastator).
- Personally, I don't advise this, though: some people are
- strange enough to play outside Adult Mode and thus never
- see the dancers. Others again (like myself) never shoot
- the dancers (I mean, come on, shooting a woman?).
-
-
- 7.23 Buzzing phones
-
-
- To have a phone buzz if the player tries to activate it, place a
- switch (132) on the phone (967), tag it [174,278] and rotate it
- away from the player to make it invisible.
-
-
- 7.24 Light switches
-
-
- Light switches turn the light in one or more sectors on and off
- ('on' is the brightness of the S, 'off' is the original light
- level).
-
- 7.24.1 Setup
-
- * Place a switch (eg 164) [0,Channel] sprite anywhere.
-
- * The sectors to light up need an S [Channel,12].
-
- 7.24.2 Notes
-
- * You can use several switches on the same channel, they
- operate simultaneously.
-
- * Switches work just fine if used on their own - perhaps
- this could be used by players to communicate?
-
- * The hitag of the switch controls the sound the switch
- makes on activation. 0 is the normal 'click', but try the
- others...
- 7.25 Permanently rotating sector (gears)
-
-
- You can set up a sector to keep rotating around a midpoint, like
- the gears in E1L3.
-
- 7.25.1 *Setup*
-
- First, build your sector. If the floor or roof is to be visible,
- make sure that you've set the texture alignment to 'relative'
- (use [R]) so it rotates with the sector.
-
- You'll need these tags:
-
- S [Channel,0]
- Defines a rotating sector.
-
- S [Channel,1]
- Defines the sector rotating axis. The direction
- defines the rotation: up is clockwise, down is
- counterclockwise.
-
- Sp [0,Speed]
- Default rotation is rather fast, so you might want
- to add an Sp[0,64] for slower movement.
-
- M [HearingDistance,SoundNumber]
- The distance obviously depends on the size of your
- rotating sector - try 8000. Good SoundNumbers to
- use are 87 (grinding gears) or 89 (machine at
- work).
-
- 7.25.2 Notes
-
- * The two S must be on top of each other, as the sector will
- behave strangely otherwise. I've had gears rotating around
- an arbitrary midpoint causing a HOM when moving over you.
-
- * M is usually placed on the pivot point, too.
-
- * A gear will pick you up if it sweeps towards you. To make
- pushing/squashing gears, raise the floor of the rotating
- sector all the way up to the ceiling.
-
-
- 7.26 Doors
-
-
- Ignoring simple doorways, real doors come in several flavours,
- consisting of one or more moving sectors, sector tags and some
- controllers.
- Note that all controllers must be inside the door sector(s), not
- right on the edge (turn off grid locking ond place it real close
- to the edge, if necessary).
-
- 7.26.1 Standard hinged
-
- A hinged door opens by rotation 90 degrees sideways.
- The door sector [0,23] contains three special sprites:
-
- S [Channel,11]
- The location of the sector effector defines the
- rotation axis, the direction the rotation
- direction:
- up
- counterclockwise turn
- down
- clockwise turn
-
- Sp [0,Speed]
- Speed ranges from 8 (very slow) to over 1000 (real
- fast). ## I think you can leave this away for a
- default speed, but I'm not sure about this.
-
- M [Sound2,Sound1]
- Sound1 is the sound number to play when the door
- is opened, Sound2 when it's closed. Usually, these
- sounds will be the same.
-
- 7.26.1.1 Notes
-
- * Take care to set the ceiling texture to 'not relative'
- using [R], otherwise it'll rotate with the door.
-
- * Make sure that the door doesn't rotate out of its original
- sector (for example, into a room with a higher ceiling) as
- the graphics will mess up. Thus the sector containing the
- door sector has to be large enough.
-
- * You can open/close several doors simultaneously (building
- double doors, for example) by allocating each door the
- same channel.
-
- * Do not attatch any part of the door to any other sector,
- the whole thing will twist (creating interesting effects,
- btw).
-
- * Turn off grid locking [L] to position the S as close as
- possible to the edge of the door.
-
- 7.26.2 DOOM-type door, remote control
-
- A DOOM-type door is actually a thin sector of its own. It closes
- by lowering its ceiling down onto the floor.
- This door opens by remote control (a switch) by raising the
- ceiling from the floor, delays a moment, and lowers the ceiling
- onto the floor again, closing the passageway.
-
- 7.26.2.1 Setup
-
- * Switches (132) [0,Channel] can be placed anywhere. Must be
- sprites.
-
- * The door sector [0,20] contains 4 controllers:
- M [ClosedSound,MovingSound] (eg 0,167)
- Sp [0,Speed] (eg 0,88)
- S [OpenDelayTime,Channel]
- A [0,Channel]
-
- 7.26.2.2 *Notes*
-
- * Switches can be hidden by letting the sprites face the
- wall and adding another sprite facing the player on top of
- it (as done in the toilet of E1L2 with the blowdryer).
-
- * If the door is half-open at game start, it will close
- automatically.
-
- * Don't make OpenDelayTime (the time to wait after closing
- the door again) too short! A door with a value of 128 will
- close real quick. If the time passes before the door has
- fully opened, it will malfunction (could be used by
- design, though).
-
- * Make sure the orientation of the door texture is set right
- (use [O]) as the door will otherwise appear to grow
- instead or rising properly.
-
- 7.26.3 DOOM-type door, local control
-
- These work in the exact same way as the remote-controlled
- version, but you don't need a switch to open them - just press on
- the door itself.
-
- Simply build the door as above, leaving the S and A controllers
- out.
-
- 7.26.4 Sliding sideways
-
- While most doors simply move the floor or ceiling (aka DOOM-type
- doors) or moving/rotating a sector, the sliding door is made up
- of one-sided walls which are shrunk by a sector wrapped around
- them.
- A perfect example can be found in E1L3, just to the right of your
- starting point.
-
- Since I found that I'm no good at explaining this in words, allow
- me to use some cheapo ASCII graphics to guide you through a
- step-by-step design :)
-
- We have a doorway where we want to insert a sliding door. It
- shall slide into the left wall:
-
- ---------------*................*-----------------
- | |
- | | Key: * Point
- | | . 2-sided wall
- | | | 1-sided wall
- | |
- | |
- | |
- ---------------*................*-----------------
-
- We start by adding a sector inside the doorway sector:
-
- ---------------*................*-----------------
- | |
- *...............*|
- | .|
- | .|
- | .|
- *...............*|
- | |
- ---------------*................*-----------------
-
- Note that the new sector goes nearly all the way across. I
- usually try to avoid overlaying unrelated lines, as they can
- cause ugly graphics glitches.
- Give the new sector a tag of [0,25].
-
- Next we simply extend the inner part of the left wall across,
- forming the door itself:
- ---------------*................*-----------------
- | |
- P1 *...............*|
- P2 *-------------\ .|
- *.|
- P3 *-------------/ .|
- P4 *...............*|
- | |
- ---------------*................*-----------------
-
- The door has a triangular endpoint, you'll see why as we shift
- points 2 and 3 (marked as P2 and P3 above) onto the points 1 and
- 4 (marked as P1 and P4 in the sketch):
-
- ---------------*................*-----------------
- | L1 |
- P1/P2 *------------ ..*|
- \ .|
- *.|
- / .|
- P3/P4 *------------...*|
- | L2 |
- ---------------*................*-----------------
-
- And here's why it's triangular: so we still see a bit of the
- sector below; we now insert some sector effectors into it:
-
- * S[Channel,15]
-
- * M[DoneSound,MovingSound]
-
- * Sp[0,DistanceToOpen]
-
- If you open the door now, the lines L1 and L2 (on the left) will
- twist backwards. To avoid this, move P1/P2 and P3/P4 a bit to the
- left, insert a point in L1 and L2 and move this point down (or in
- P2s case, up) onto the line so you get this:
-
- ---------------*................*-----------------
- | L1 |
- P1/P2 *--*------------ ..*|
- \ .|
- *.|
- / .|
- P3/P4 *--*------------...*|
- | L2 |
- ---------------*................*-----------------
-
- Voila! Press against the door to open it.
-
- Sorry about the ugly sketches, but the above is a lot easier to
- understand than the gamboozle that was here in v0.4 of the FAQ :)
-
- 7.26.4.1 Notes
-
- * A typical sliding door texture is 447.
-
- * Changing the heading of the sector effector produces
- interesting (and usually, buggy) results.
-
- 7.26.5 Star Trek door
-
- This door slides sideways, compressing its texture as it does so.
- The door is activated by pressing against it.
- 7.26.5.1 *Setup*
-
- This door is very similar to the sliding door.
- Let's assume your doorway goes from north to south and the star
- trek door thus slides east/west:
-
- * Create the sector containing the doorway.
-
- * Using horizontal lines, split this sector into three sectors.
-
- * Extend the doorway sectors walls into the middle sector of the
- doorway, forming the doors themselves. Let the doors (almost)
- meet in the middle.
-
- * Now tag the middle sector: [0,9]
-
- * Add two sprites to the middle sector:
- M[0,Sound] (eg. [0,259])
- Sp[0,OpeningSpeed] (eg. [0,64])
-
- And that's all!
-
- 7.26.5.2 Notes
-
- * If you extend the middle sector straight to the east and
- west (like the sliding door), the door texture will be
- longer although part of it will be hidden. This will make
- sure that you can hardly see the compressing effect while
- the door opens.
-
- * The door sound is played twice (bug). Thus my Star trek
- doors are always totally silent.
-
- 7.26.6 Four-way door
-
- These doors open in both directions (up/down and left/right) at
- the same time when activated.
-
- Simply build a star trek as above, but let the floor and ceiling
- of the middle sector meet in the middle and give the middle
- sector a tag of [0,26].
-
- These doors look very nice indeed :)
-
- 7.26.6.1 Notes
-
- * It is possible to get these doors to misbehave: try
- triggering a low, long door again while it is already
- opening. The roof will start to close again while the
- walls are still opening.
- Now the door will be difficult to navigate: as the roof
- opens, the walls close and vise versa.
- Of course, this can be fixed by triggering the door again
- in quick succession, but it interesting to know.
-
- * The above bug can be used for special doors - simply
- design the walls to be open at the start, and the door
- will react as above.
- You can get through it if you run, though.
-
- 7.26.7 Clamshell doors
-
- Clamshell doors split horizontally when opening - the top half
- disappears into the ceiling, the bottom half into the floor.
- Just build a DOOM-style door, but tag the door sector [0,22] and
- make sure the floor and ceiling meet in the middle.
-
- 7.26.8 Teeth doors
-
- ## I've found some info on building teeth doors, but I didn't get
- them to work. The BUILD docs say that teeth doors weren't tested
- in the game and might make trouble in multi-play.
-
- 7.26.9 Auto-closing doors
-
- Simply add an S[DelayTime,10] in the door to auto-close.
-
- 7.26.10 Switch-controlled doors
-
- Every door can be opened via a switch as well:
-
- Simply add a switch somewhere and tag it [ActivationSound,
- Channel].
-
- Inside the door, place two effectors:
- S [OpenDelayTime,Channel]
- A [0,Channel]
-
- 7.26.10.1 *Notes*
-
- You can also use sector tags (T[0,Channel]) to open a door when
- the player enters a sector.
-
-
- 7.27 Shrinking sector (remote control)
-
-
- This will shrink a sector (for example a curtain) on the flick of
- a switch. Pressing the switch again will regrow the sector.
-
- 7.27.1 Setup
-
- * Place one or more switches anywhere
- [ActivationSound,Channel].
-
- * Inside the sector to shrink [0,27], place three
- controllers:
- S [Channel,20] facing the movement direction.
- A [0,Channel]
- Sp [0,OpeningDistance]
-
- 7.27.2 Notes
-
- * Don't open the sector too wide - it will move through the
- wall, creating ugly HOM effects.
-
- * Have a look at the floor if a hanging sector moves - it
- looks strange. Use [R] to get rid of the effect.
-
-
- 7.28 *Spawning monsters*
-
-
- You can have monsters appear anywhere when the player walks onto
- a certain sector.
-
- 7.28.1 *Setup*
-
- * Place a T[0,Channel] in the activating sector.
-
- * Place one or more R[TileToSpawn,Channel] anywhere.
-
- 7.28.2 *Notes*
-
- * The pig cop has TileToSpawn of 2000.
-
- * I don't know what T's hitag means. Perhaps the delay time?
- ##
-
- * You can also use a switch with a tag of [0,Channel] to
- spawn monsters.
-
- * You can spawn other things than just monsters (like
- weapons or medipacks).
-
-
- 7.29 *Difficulty settings*
-
-
- To have an object or monster only appear in a certain difficulty
- level, just give it a lo-tag:
-
- Lotag Appears in difficulty level
- 0 1,2,3,4
- 1 1,2,3,4
- 2 2,3,4
- 3 3,4
- 4 4
-
-
- 7.30 Automatic cannon
-
-
- An automatic cannon will fire an object every 5 seconds in a
- certain direction as soon as it's been activated by a
- masterswitch.
-
- 7.30.1 Setup
-
- Place an S with [0,36], marking the shot spawn shot. Aim it
- whereever you please.
-
- Add an Sp[0,ObjectNumber] in the same sector. ObjectNumber is the
- tile number of the object to fire from S.
-
- Add a D[0,TriggerChannel] in the same sector. You can hook, for
- example, a T[0,TriggerChannel] anywhere to start the gun up.
-
- 7.30.2 Notes
-
- * I've found the following objects to be possible ammo:
-
- 1360 Psionic blast.
- Aimed slightly down, and has a limited
- range.
-
- 1625 Laser.
-
- 1636 Spit.
-
- Aimed slightly down, and has a very limited
- range. Makes no noise at all.
-
- 1641 Freeze blast.
- Always aimed at player, but has no effect on
- him. Looks cool, though :)
-
- 1650 Mortar.
- The mortar ball drops down at a steep angle
- and explodes on impact.
-
- 2556 Shrink ray.
-
- 2605 RPG.
- Will always aim at player, regardless of aim
- or LOS.
-
-
- 7.31 Lethal sectors
-
-
- To make a sector instantly lethal to the player (even in God
- mode), parallax BIGORBIT as the ceiling.
-
-
- 7.32 Earthquakes
-
-
- Earthquakes have three effects:
-
- * The screen shakes for about 4 seconds and the earthquake
- sound is played.
-
- * Sectors can tilt.
-
- * All SE[0,33] on the whole map spawn rocks and debris.
-
- 7.32.1 Setup
-
- Place an S[0,2] on every sector to tilt.
- Place an D[0,TriggerChannel] in the same sector.
- If you want, place S[0,33] anywhere on the map.
-
- Earthquakes have to be triggered, for example with a
- T[0,TriggerChannel] anywhere.
-
- 7.32.2 Notes
-
- * To tilt sectors, they have to be tilted on the map by a
- maximum of 4 clicks (you can tilt more, but it won't have
- any effect). Such sectors are shown flat at startup.
-
- * You can put S[0,33] anywhere - they are triggered by any
- earthquake on the map. Try putting them slightly under the
- floor, or high in the air for special effects.
-
- * The build docs claim that a sector will move in the S[0,2]
- direction during an earthquake, but I've never seen that.
-
- 7.33 Elevators
-
-
- Elevators come in two kinds: those where just the floor moves
- (open elevator) and those where the ceiling moves as well (closed
- elevator).
-
- Both rely totally on sector tags: except for the sound, no
- controllers are used.
-
- 7.33.1 Setup
-
- An elevator is simply a sector that moves from the nearest low
- floor to the nearest high floor. Thus the only important thing
- really is setting the floor heights of the adjacent sectors
- properly.
-
- Tag the sector according to the desired elevator type:
-
- [0,16] Open elevator
-
- [0,18] Closed elevator
-
- 7.33.2 Notes
-
- * You can set an elevator at the top or the bottom to start
- with, it doesn't make a difference. You can even set it at
- half-way.
-
- * Elevators must be the right size. If the elevator seems to
- go on forever, the ceiling of the first room is too high -
- try fiddling with this or pressing [SpaceBar] in the game
- to reverse the elevators direction.
-
- * There are two more sector tags available to elevators:
- [0,17] (open elevator) and [0,19] (closed elevator).
- They're supposed to control the starting position of the
- elevator, but _you_ do that already simply by placing the
- elevator at the desired starting height.
- ## Anybody know what's going on?
-
-
- 7.34 Remote-controlled Elevators
-
-
- Remote-controlled elevators are just like ordinary elevators,
- except that they're operated via a switch somewhere (or several
- switches, of course).
-
- 7.34.1 Setup
-
- To turn an ordinary elevator into a remote-controlled one, just
- add an A[Channel,0] in the elevator sector and place switches
- tagged [Channel,0] anywhere.
-
-
- 7.35 Teleporters
-
-
- Teleporters move players instantly between any two points.
-
- 7.35.1 Setup
-
- Teleporters are not sectors, just sector effectors. They do need
- the floor tile 626, though.
- S [Channel,7], facing is the same the arriving player should
- face.
-
- 7.35.2 Notes
-
- * A teleporter without a floor tile 626 only act as
- receivers.
-
- * A single teleporter without a destination will kill the
- player.
-
- * If the S is off the ground, the teleporter is silent -
- useful for transporting players around the map without
- telling them about it (see E1L1, falling down the airduct,
- as an example).
-
- * When using more than two teleporters on the same channel,
- you always land on the teleporter with the lowest sprite
- number. If teleporting from the lowest sprite number, you
- end up on the next-highest one.
-
- * Teleporters don't work if you fly over them.
-
- * Don't create a teleport sector with two of the walls being
- masked, blocked and hitable. It messes up.
-
- * ## I've had strange effects when firing rockets into two
- teleporters set up in a line - the rocket reappeared
- _behind_ me, angled slightly to the right (thankfully :)
- Any ideas?
-
-
- 7.36 Swimming pools
-
-
- Swimming pools allow the player to jump into the water and dive
- around under the water surface.
-
- 7.36.1 Setup
-
- A swimming pools consists of at least two sectors: one is the
- room above the water, one is the room below it. An teleporter
- secretly moves the player (and any other objects, like pipebombs)
- between the levels as required.
- The sectors sharing the water surface have to be the exact same
- size and shape (of course).
- The teleporter connecting them needs a unique channel number.
-
- Above-water sector
- [0,1]
- S [Channel,7]
-
- Below-water sector
- [0,2]
- S [Channel,7]
-
- 7.36.2 *Notes*
-
- * The floor/ceiling types for the water surface don't matter
- - all objects will always be transported correctly, water
- will splash, etc.
- This allows you to generate hidden traps, mud, etc.
-
- * If you split a pool into several sectors (for example in
- order to create a pool with a shallow and a deep end), you
- have to split the above-water sector as well and add a
- sector effector in each new sector, each with it's own
- channel.
-
- * Interesting things happen if the S is not exactly on the
- floor (use [Ctrl]-[PgDn]).
-
- * The S above and below the water must be in the exact same
- relative position and face in the same direction.
-
- * Don't place a toilet underwater. While Duke can use it, he
- won't be able to surface anymore afterwards (bug).
-
- * Beware of sloping pool floors. The SE has to be on the
- lowest point, and I don't know how stable it works.
-
- 7.36.3 Tips
-
- * Nothing to stop you from adding sector to the below-water
- sector, forming an underwater tunnel leading somewhere
- else; perhaps even surfacing in a different pool.
-
-
- 7.37 The Grapplers
-
-
- Grapplers are hooks descending from the ceiling which will pick
- up objects (including players), transport them somewhere else and
- drop them off again.
-
- 7.37.1 Setup
-
- * Add a crane pole [Channel,0] (1221) at the place where
- something is to be picked off. Place it in its own sector,
- as the crane will pick up anything that moves into this
- sector.
-
- * Place the crane itself [Channel,0] (1222) at the
- destination point.
-
- 7.37.2 Tips
-
- * Grapplers don't pick up everything - I'm still fiddling
- around to try what is actually transported. Players are,
- as are monster corpses.
-
- * As the crane move across the ciling, it's a good idea to
- place some kind of raised texture there (353 works well).
-
-
- 7.38 Overlapping sectors
-
-
- While DOOM was 2.5D because of its strictly 2D map, Duke3D is
- 2.75D: while the data structure allows you to design several
- sectors over each other, the graphic engine can't display more
- than one ceiling and one floor over each other at a time.
-
- This means you can't:
-
- * Build a real bridge.
-
- * Build two windows over each other.
-
- * Build a house missing a wall, showing several floors over
- each other.
-
- However, you can:
-
- * Build a house where you can actually walk on the roof (as
- long as the house doesn't have windows).
-
- * Build corridors crossing over and under each other.
-
- * Build a house with two stories above each other, as long
- as the windows are on opposite sides of the house (and
- facing into different sectors).
-
- Building overlapping sector is easy: Just draw the first sector,
- move floor and ceiling where you want them, then draw another
- sector overlapping the first one. Try it!
-
- 7.38.1 Notes
-
- * Two overlapping sectors cannot share a double-sided wall,
- but you can connect them with a separate sector (for
- example, a sloping tunnel or an elevator).
-
- * Don't use overlapping sectors unless you have to! Editing
- them is very little fun indeed, as the 2D editor has
- trouble differentating between the sectors and it's hard
- joining sectors, etc.
-
- * Note that you can build real 3D floors (walkable above and
- below) by using sprites rotated flat as floor (set the
- 'blocking' flag). It's hard work, though - see the section
- on bridges.
-
- * Be careful when building overlapping sectors - monsters
- can get confused if there's somebody else in the
- overlapping room, and the sound will come from there as
- well. Use it sparingly.
-
-
- 7.39 Hiding switches
-
-
- To hide a switch, simply turn its facing towards the wall.
-
- It is advisable to place a different sprite facing the player
- over it, so he knows where to press (unless you _really_ want to
- hide it).
-
-
- 7.40 Bridges and Shelves
-
-
- We actually cheat a bit in order to build a bridge: it's made up
- of sprites!
- Take the sprite, rotate it flat to the floor, mark it as 'blocks
- movement' and then raise it into the air - you'll be able to walk
- on and underneath it.
-
- So far, I have found two typical bridge sprites, but any sprite
- will work:
-
- 513 Stone bridge, as found in E1L1.
-
- 609 Metal bridge with holes in it, found in E1L6.
-
- 7.40.1 *Notes*
-
- * Building a solid-looking bridge (one having width)
- actually takes some time, as you have to mess around with
- the side and bottom walls too (they're also sprites, of
- course) which can take ages.
-
- * It's possible to make a bridge droppable (try using a
- pipebomb on the bridge in E1L1) by tagging the sprites
- [Channel,0].
- Bridges with the same channel with collapse
- simultaneously. I've tried channels 254 and 255 with good
- results.
-
- * Keep in mind that the visible overlapping of sprites is
- calculated by looking at the sprite center. Thus if you
- place several small sprites (bottles) on a single large
- sprite (a wooden board), the board will overlap some
- bottles when viewed diagonally.
- Thus you should build larger objects of several small
- sprites.
-
- * Especially bridges often suffer from the above problem.
- One way to (partly) fix this is to make all the sprites
- single-sided, with the sprites only visible from outside
- (press [1] and use [F],[<] and [>] to rotate them until it
- looks right).
-
- * It's perfectly possible to create a multilevel building
- out of nothing but sprites. It's a hell of a job, however.
-
-
- 7.41 Minibosses
-
-
- In episodes two and three, the boss from episode one makes a
- comeback, but in a 'light' version: he's smaller, more easily
- killed and the level doesn't end when he's dead.
-
- To create such a boss, just give him (2630) the palette number
- 21.
-
- 7.41.1 *Notes*
-
- * To spawn minibosses, set the palete of the respawn
- effector to 21.
-
- * No other minibosses are defined in the .CON files, thus
- this trick works poorly on the other two bosses: they die
- after taking a single hit.
-
- 7.42 *Crashing car/helicopter*
-
-
- These are easy: just place their sprite (car is 2491, helicopter
- is 1386) anywhere high enough, point them in the direction you
- want them to go and that's all.
-
- 7.42.1 *Notes*
-
- Make sure the sprites have enough space to fly all the way before
- they (automatically) crash: if they hit a wall first, they will
- slide down it.
-
-
- 7.43 Pulsing lights
-
-
- Pulsing lights are made up of several sectors which light up in
- sequence, causing a 'running light' effect. This can be used
- nicely to point a player towards an emergency exit, for example.
-
- 7.43.1 Setup
-
- You'll need several sectors in a line. Each of these sectors
- should contain a C[0,LightTime] and an Sp[0,LightSpeed].
-
- The sectors themselves should be dark and the C's light.
-
- LightTime is the sequence in which the sectors light up (higher
- ones first). A typical sequence would be 0,256,512,768,1024,...
- This also controls how many sectors are lit at the same time.
- With a difference of 200, the light pulse is about 4 sectors
- long. With 400, it's 2 sectors (not as smooth).
-
- LightSpeed is the speed at which the light pulse travels along
- the sectors.
-
- 7.43.2 Notes
-
- * Nowhere is it written that the sectors have to be in a
- straight line or, indeed, any line at all.
-
- * The C and Sp effectors have to face in the same direction
- or they won't work.
-
-
- 7.44 Vehicles
-
-
- Vehicles (simply a sector with a raised floor, a lowered roof or
- both) can be set up to travel from their original position to a
- pre-determined closed path, which they will follow.
-
- 7.44.1 *Setup*
-
- * The vehicle sector requires an S
- [LocatorNumberToStartAt,6]. The position of this
- controller determines the rotation center when turning,
- and its direction the facing of the vehicle.
- LocatorNumberToStartAt is usually 0 if you have only one
- vehicle on the route.
-
- * All vehicle sectors need to be tagged [0,1].
-
- * Mark the route with several L+ [Pause,VisitingOrder].
- A Pause of 0 means smooth movement, a 1 means a short
- pause at the _next_ L+.
- The controllers are visited in their VisitingOrder,
- starting from 0.
-
- * Use [R] on the vehicles floor texture to make it move with
- the vehicle.
-
- 7.44.2 *Notes*
-
- * The vehicle must start in the same sector as its route, as
- the game will refuse to run otherwise. Thus you can't, for
- example, cause a car to come out of a low garage and
- circle around outside afterwards.
-
- * You can have several vehicles following the same route.
-
- * You can also design a vehicle using several sectors, but
- they will rotate individually at each L+. Rather use a
- 'bounding' sector, containing the S - see the attacking
- spaceship in E2L1 for an example.
-
- * The whole route must be in one sector - you cannot move a
- vehicle through several sectors.
-
- * You can only have one route defined per map.
-
- * To have sprites move with the vehicle, they must be in the
- same sector as the S[0,6].
-
- * Vehicles can't move up or down slopes.
-
-
- 7.45 Attacking Vehicles
-
-
- To make a vehicle attack any visible player with rockets (like
- the space fighter at the start of E2L1), just parallax the
- ceiling of the vehicle.
-
- 7.45.1 Notes
-
- * To have a vehicle move about under an parallaxed sky
- without shooting at you, give the sky or the floor a
- palette (any palette except 0 will do). Palette number 3
- works well.
-
-
- 7.46 Two-way Vehicles
-
-
- A two way vehicle moves back and forth between two points when
- activated (for example, with a key).
-
- 7.46.1 Setup
-
- * The vehicle needs a tag of [0,31], an S[Channel,30] and an
- A[0,Channel].
- S points in the direction of vehicle movement.
-
- * Two locaters L+[0,0] and L[0,1] need to be placed to mark
- the stopping points of the vehicle. L[0,1] is the locator
- visited first by the vehicle.
- * Place one or more switches [0,Channel] anywhere, including
- on the vehicle.
-
- 7.46.2 *Notes*
-
- * The vehicle moves off in the direction of its S. If it
- doesn't find an L+, it will keep moving forever, passing
- straight through any walls on the way out.
-
- * Vehicles don't have to start near an L+, they will move
- there on their own.
-
- * On both locators, channels are triggered which can be used
- to automatically open dors, switch on lights, etc. The
- channels are Channel+1 for the L+[0,1] and Channel+2 for
- the L+[0,0].
- Thus if you used channel 6 for a two-way train, channel 7
- would be triggered when the train reaches the first stop.
-
-
- 7.47 *Echoing rooms*
-
-
- To make a room echo (as in a sewer, for example), simply tag the
- room sector [1000+AmountOfEcho,SoundDistance].
-
- AmountOfEcho ranges from 0 to 255.
-
-
- 7.48 Water waves
-
-
- It's possible to have the floor of a sector move up and down.
- Several of these sectors in series can give the effect of a
- travelling water wave.
-
- 7.48.1 Setup
-
- A wave sector actually changes its floor tilt value.
- Thus, simply define several 4-walled sector in a row, adding a
- single S [WaveShape,29] in each.
-
- You can add an Sp[0,WaveHeight] in the sector as well.
-
- 7.48.2 Notes
-
- * Wave sectors must be four-sided.
-
- * The floor tilts along the first line of each sector, so
- make sure you've set it properly (use [Alt]-[F]).
-
- * WaveShape/WaveHeight range from 0 to 2048.
-
- * If you tag the wave sectors [0,2], you'll be able to swim
- underneath the water (see Swimming Pools for details).
- Duke won't be able to stay afloat if the wave is too high,
- though.
-
-
- 7.49 Engine piston
-
-
- In designing machines, you often want a piston moving up and
- down, squashing anything wandering underneath.
- 7.49.1 Setup
-
- Simply add an S [0,25] in the sector.
-
- 7.49.2 Notes
-
- * This effector moves the ceiling down to the height of the
- S and back up.
-
- * You can add an Sp or M to taste.
-
-
- 7.50 *Edge walls*
-
-
- The edge of the playing map in an outdoors setting is always a
- problem - how to avoid simply using a very tall building and
- instead closing off with an (impassable) low wall?
-
- 7.50.1 Setup
-
- * Build a low wall around your world.
- Use any texture you like.
-
- * Set the ceiling texture of the wall to the same as your
- main ceiling.
- Usually, this will be 89 (LA).
-
- * Parallax it.
- If your main ceiling is already parallaxed, the upper part
- of the wall will disappear.
-
- * Lower the ceiling of the low wall to its floor.
-
-
- 7.51 Code switches
-
-
- Code switches are buttons which have to be pressed in a certain
- way before activating something. An example is the 3-way dip
- switch used to unlock the red gate in E1L2.
-
- 7.51.1 Setup
-
- Set up the switches anywhere, tagging them [Status,Channel].
-
- Status is the required state for activation: 0 (off) or 1
- (on).
-
- Channel is the same for all code switches belonging
- together, and is used as the lo-tag of the A or L
- tags activating whatever is supposed to happen.
-
- 7.51.2 Notes
-
- * Personally, I find these boring. I just cycle through them
- in order and the door or whatever opens real quick.
-
- * You can place the switches all over the level, if you
- like. Not a nice thing to do :)
-
- 7.52 The pool table
-
-
- Everybody (myself included) was very impressed with the pool
- table in E1L2. It's easy to make your own, and perhaps you can
- use this to design other toys.
- Reading this, I also realize why 3DRealms didn't answer our
- request for a reset button :)
-
- 7.52.1 Setup
-
- The table itself is just a table with a raised wall around it.
- The trick is in the sprites used: just add balls (901 and 902)
- and (flat) pockets (903).
-
- 7.52.2 Notes
-
- * The balls will move nicely when pushed. They will remain
- at the same height, floating through the air if necessary.
-
- * Use different palettes on the balls to create different
- colors.
-
-
- 7.53 Once-only sound effects
-
-
- Often, you'll want a sound effect to be played only once when a
- player enters a sector. An example is Duke talking at the
- beginning of E1L1.
-
- 7.53.0.1 Setup
-
- Give the sector a lotag of 10000+SoundNumber.
-
-
- 7.54 Ambience sounds
-
-
- Simply place an M[Range,SoundsFrom] anywhere. Every now and then,
- an ambience sound will be played.
-
- SoundsFrom is the number of the lowest sound to play, Range is
- the number of sounds to look at for random selection of the sound
- to play.
-
- For example: M[231,3] would randomly select a sound from the
- sound numbers 231,232,233,234.
-
- Sadly, not all sounds can be used as ambience sounds (see the
- list in the reference section).
-
-
- 7.55 Tips and tricks: New and interesting effects
-
-
- It is often the case that users find new and interesting effects
- for sector functions that the designers never thought of. If
- anybody finds something like that, please let me know and I'll
- put it here.
-
- 7.55.1 Ghosts
-
- You can make enemies transparent or even rotated (2D or messed-up
- flat things). They'll still attack normally.
- Transparent enemies are particularily effective in dark places.
-
- 7.55.2 Unfreezable monsters
-
- If you give a monster a palette of 1 (blue), it can't be frozen.
-
- 7.55.3 Falling to your death?
-
- Scaring the player is high on anybodies list for levels.
- So let the player fall down a deep shaft (aaaaarrrggh) with a
- teleporter hanging in the air at the bottom, transporting him
- somewhere else (causing a safe landing).
-
- 7.55.4 *Malfunctioning doors*
-
- Doors malfunction if the closing time is too short (see the
- section on doors). This can cause a nice paranoia effect when the
- door keeps opening and closing all the time.
-
- 7.55.5 Mines
-
- It's possible to take a trip mine, shrink it real small and put
- it in it's very own sector somewhere on the floor. Done properly,
- you can create a proximity mine which can only be seen if the
- player is paying attention >:)
-
- 7.55.6 The shrinking player
-
- Called the Alice In Wonderland effect, this requires you to take
- a long hallway and gradually make everything bigger - the floor
- gets wider, the walls higher, the sprites bigger...
- The opposite works as well, of course.
-
- Problems:
-
- * Enemies can't be resized (they're animated).
-
- * The map will show it all.
-
- 7.55.7 Even more textures
-
- Remember to only add your own graphics into your maps if you
- really have to - they make your final package large and unwieldy
- and, after all, Duke3D already contains LOTS of textures.
- You can also cleverly resuse old textures by resizing them - if
- you elongate a texure until it breaks into streaks and then make
- the streaks wider, you get a nice metallic effect.
-
-
-
-
-
-
- Chapter 8
-
- Programming the .CON files
-
-
- In this chapter I'll attempt to explain just what the .CON files
- are about and how they work.
- 8.1 The language of the .CON files
-
-
- Here's just some stuff I wrote up when I still only had the
- shareware version - in the next version of this FAQ I'll expand
- on this:
-
- state <name> Defines a subroutine.
-
- ends Called via state <name>. See state rats for an
- example.
-
- include <filename>
- Includes <filename> in the code.
-
- /* <text> */ Comment block (can be several lines)
-
- // <text> Comment to end of line
-
- spawn <object> Creates <object> on nearest floor. See also
- ifspawnedby.
-
- ifrnd <x> <action>
- If x is smaller than Random(255) then <action>.
- See state rats for an example.
-
- debris <a> <b> Creates an exploding debris shower.
- <a> is the debris graphic:
- Normally SCRAPn:
- SCRAP1 : Metal barrel pieces
- SCRAP2 : Edged metal barrel pieces
- SCRAP3 : White fluff
- SCRAP4 : Gray/brown boxes
- SCRAP5 : Gray/brown squashed boxes
- SCRAP6 : Pottery shards
- <b> is the amount*3 of debris to show.
- Typical values are 2,3,4,5 or 12.
-
- guts <a> <b> Similar to debris, but throws guts about, which
- cause a blood splat on the ground.
- <a> is guts graphics: JIBS1..JIBS6
-
- hitradius <r> <1 2 3 4>
- Causes damage in radius <r> (always 1024).
- Damage is normally WEAKEST WEAK MEDIUMSTRENGTH
- TOUGH (see USER.CON).
-
- addweapon <x> <y>
- Add weapon <x> with ammo <y> to players inventory.
-
- addammo <x> <y>
- Add <y> amount of ammo for weapon <x> in
- inventory.
-
- killit Remove current actor.
-
- sizeto <a> <b> Resizes an actor.
-
- palfrom <a> <b>
- Changes actor palette.
-
- sound <x> Play sound <x> locally.
-
- globalsound <x>
- Like sound, but heard in whole map.
-
- ifhitweapon <action>
- Execute <action> if hit by weapon.
-
- ifhitspace TRUE if player is pressing the spacebar.
-
- ifcansee TRUE if player can see this object.
-
- ifwasweapon <x> <action>
- Checks to see what weapon hit the actor:
- THROWFLAME Flamethrower
- RADIUSEXPLOSION Exploding device
- RPG Rocket launcher
- FIREEXT Fire extinguisher
- SHRINKSPARK Shrinker beam
- SHOTSPARK1 Bullet
- COOLEXPLOSION1 ?
- KNEE The Mighty Foot
- FIRELASER Laser
-
- ifspawnedby <x>
- TRUE if actor was spawned by object <x>.
-
- ifsquished TRUE if actor was squished.
-
- ifpdistg <x> TRUE if distance to player > x.
-
- ifpdistl <x> TRUE if distance to player < x.
-
- addphealth <x> Add <x> to players health (can be < 0).
-
- resetplayer Player resets in DM mode.
-
- Some fun objects to spawn:
- (see DEFS.CON as well)
-
- AMMO Pistol ammo.
-
- BURNING Starts fire on nearest floor, burns out soon.
- Doesn't start if no player near.
-
- COLA Small first-aid box.
-
- EXPLOSION2 Nuke explosion. Image only - no damage...
-
- EXPLOSION2BOT Top part of explosion. Image only
-
- FIRE Small flame, burns out soon.
-
- FIRE2 Shorter fatter flame, permanent, can be stamped
- out.
-
- OOZ Slime stretching to the ceiling.
-
- PIGCOP Pig Cop (can be spawned!).
-
- RAT Squeak!
-
- SHIELD Armor
-
- SHRINKEREXPLOSION
- Green oval shrinker impact - image only.
- STEAM Hissing steam, causes damage, horizontal.
-
-
- 8.2 Notes
-
-
- Just some random notes - I'll rewrite the whole of this chapter
- anyway in the next FAQ.
-
- * The language is C - so if you can program in C, you won't
- need this chapter at all as you can work nearly everything
- out yourself.
-
- * The commands are case-sensitive.
-
-
- 8.3 Cute tricks
-
-
- Here are some nice tricks to do with your .CON files - if you
- know of any other, let me know! ##
-
- 8.3.1 Picking up weapons
-
- Don't you hate it when you have the RPG selected, are running
- towards somebody, run over the shotgun and automatically pick it
- up, selecting it as your current weapon?
-
- With this patch you'll have to press [SpaceBar] to pick up any
- weapon.
-
- It's easy, too: look in GAME.CON at line 874. See all the
- requirements that have to be true before Duke will pick up the
- shotgun? Well, just add the work 'ifhitspace' (must be in
- lowercase) to the end of that line and you're done!
-
- Of course, you'll have to do this with all other weapons as well,
- but I'm sure you're able to handle that.
-
- The disadvantage? Unless you hack around a bit yourself, you'll
- have to press spacebar to pick up an existing weapon as ammo as
- well.
-
- 8.3.2 Explosive ammunition
-
- Lots of fun can be had with the SHOTSPARK1 actor (the spark
- created by a bullet striking anything).
-
- After line 1404 in GAME.CON, add the following lines:
-
- ifactioncount 3
- {
- hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
- spawn EXPLOSION2
- debris SCRAP2 2
- sound PIPEBOMB_EXPLODE
- }
-
- What does this do?
-
- ifactioncount is probably the animation frame number; we use it
- to make sure the code is only executed once per
- shotspark.
-
- hitradius causes damage in a 1024 unit radius, with the most
- damage in the middle of the circle.
-
- spawn spawns an object named EXPLOSION2 at the actors
- spot. In this case, the actor is SHOTSPARK1. This
- line makes sure the explosion animation is shown.
-
- debris throws some debris around, but not much (try
- "SCRAP1 10").
-
- sound plays the proper sound for the explosion.
-
- { } are the begin/end delimiters of the "if" command.
-
- So your bullets now cause more pain and suffering and more fun
- for you. However, even the lowly pigcops are suddenly really
- dangerous.
- Because, you see, the monster bullets generate SHOTSPARK1's as
- well...
-
- 8.3.3 Splat!
-
- Lots more fun can be had with SHOTSPARK1.
-
- Try adding this line just after line number 1404 in GAME.CON:
-
- if actioncount 3 { spawn PIGCOP }
-
- This will cause a pigcop to appear every time you fire a shot. As
- soon as he shoots at you, eight more pigcops warp in. And then 72
- more. And then...
- Soon your system will hang itself...
-
- Thus rather don't shoot. Take the jetpack, fly high up the street
- in E1M1 and shoot and the wall. The pigcops appear and
- immediately fall to a messy death many stories below >:)
-
-
-
-
-
-
- Chapter 9
-
- Utilities and add-ons
-
-
- 9.1 Editing utilities
-
-
- This section contains all programs which can be used in editing
- somehow.
-
- 9.1.1 BUILD
-
- The BUILD program is currently the only Duke3D .MAP editor in
- existence. Personally, I don't think that it will be replaced
- anytime soon :)
-
- Documentation to it are in the file BUILDHLP.EXE (press [F2]
- while viewing and give a filename to create an ASCII file instead
- of printing all that stuff) and in this FAQ.
-
- I hear somebody is working on a new .MAP editor, but it's for
- Windoze95 (ugh).
-
- 9.1.2 EditArt
-
- EditArt is also included on the Duke3D CD and allows you to
- change the graphics included in Duke3D. If effect, it allows you
- to extract/import graphics (use something else to actually edit
- the graphics).
-
- You'll first have to extract the .ART files using the command
- KEXTRACT DUKE3D.GRP *.ART
-
- Watch out, though: this will create the files TILES000.ART to
- TILES014.ART, taking up nearly 15MB of space on your drive. If
- you just want to change part of the graphics, try extracting a
- single .ART file:
- KEXTRACT DUKE3D.GRP TILES000.ART
-
- Documentation to EditArt are in the Build Docs; here are just
- some notes:
-
- 9.1.2.1 Changing graphics
-
- To extract a tile from a .ART file to a .PCX file, use [PgUp] and
- [PgDn] to select the tile. You can also use [V] or [G] (Goto).
-
- Press [F12] to create a CAPT0000.PCX file in your directory,
- containing just the tile.
- Edit this tile with your favourite graphic tool. While EditArt
- can also edit graphics (as the name suggests), I prefere to use
- something like NeoPaint or somesuch. The guys at 3DRealms used
- Dpaint, so make sure you save as an 8-bit 256 color PCX,
- preferably in 320x200 format.
-
- Then go back into EditArt, select the tile again and press [U] to
- import the .PCX file. After selecting the image, use the mouse to
- drag the rectangle over the whole image (grabbing all of it) and
- press [Enter].
-
- Voila! Now all you have to do is keep the changed .ART file in
- your Duke3D directory, and the game will load the new graphics
- automatically on starting.
-
- 9.1.2.2 Adding new graphics
-
- Adding new graphics is fun and easy: simply modify the
- TILES0014.ART file.
- It contains only a single tile, called 'user art'. You can
- replace this and all others in the .ART file using the above
- method.
-
- User art starts at tile number 3584.
-
- Now you can access the graphics like any other tiles in BUILD.
-
- 9.1.2.3 *Using DOOM I graphics*
-
- Adding DOOM graphics is less easy - here's a step-by-step account
- on how to do it (there's probably an easier way, but I haven't
- found it yet):
-
- * Extract TILES0014.ART from DUKE3D.GRP, as explained above.
-
- * Back up your PALETTE.DAT and NAMES.H files, preferably by
- copying them in their own directory (I use the same one I
- backup my .CON files into).
-
- * Convert the DOOM graphics (you'll need the original
- DOOM.WAD):
- WAD2ART D:\GAMES\DOOM\DOOM.WAD
- (You'll find WAD2ART in the \GOODIES\WAD2MAP directory on
- your Duke3D CD)
- This'll take a while, but you only need to do it once.
-
- * You now have three new files in your directory: NAMES.H,
- PALETTE.DAT and TILES000.ART.
-
- * Call up EditArt and select the graphics you want to
- convert (tiles start at number 462). Press [F12] to make a
- screendump of each.
-
- * Rename TILES000.ART to something else in case you want to
- convert more DOOM art later. Best to place it in its own
- directory, together with the new NAMES.H and PALETTE.DAT.
-
- * Restore your original NAMES.H and PALETTE.DAT files.
-
- * Call up EditArt, select an empty tile and import the DOOM
- .PCX screens as explained in 'Adding New Graphics' above.
-
- * The sprites are going to need a fair amount of retouching.
- For example, I replaced all octabrains with cacodemons
- only to find that they shade real poorly when moving into
- a lower sector :(
-
- 9.1.2.4 General notes
-
- * All files must be 320x200x256. So even if you have an
- 64x64 tile, you'll have to stamp it into a 320x200 image
- to import it properly.
-
- * If one graphics format doesn't work for you, try another
- one. Personally, I have the least problems using BMP.
-
- * Tiles with a 2^n size (like 16, 32, 64, 128, 256) seem to
- make the least problems when importing.
-
- * Note possible palette problems. While EditArt can convert
- a palette for you, it usually sucks, so do it yourself
- before loading the image.
-
- 9.1.3 Wad2Map utilities
-
- The Wad2Map programs (included on the Duke3D CD) allows you to
- convert your DOOM .WAD pages to .MAP format, as well as
- converting the graphics.
- You will need the original DOOM.WAD file (called an IWAD file).
-
- I very highly recommend copying the WAD2EXE directory into its
- own subdirectory on your hard drive, as you'll be overwriting
- some of your files (PALETTE.DAT and NAMES.H) from Duke3D
- otherwise.
- In any case, make a backup of your original PALETTE.DAT and
- NAMES.H files.
-
- Also, don't forget to remove line 733 from DUKE.TXT as the
- conversion won't work well with it (the cautious amongst you can
- just comment it out - put a semicolon (;) before it).
-
- The utilities consist of two parts:
-
- 9.1.3.1 WAD2ART
-
- Converts the DOOM textures (I've only tried this with DOOM I so
- far) to TILE*.ART format.
-
- Usage:
- WAD2ART D:\GAMES\DOOM\DOOM.WAD
- (or wherever your DOOM.WAD file is).
-
- This will create three files in your current directory:
-
- TILES000.ART A huge file containing all the DOOM graphics.
-
- NAMES.H The names of all the new tiles.
-
- PALETTE.DAT The original DOOM palette.
-
- 9.1.3.2 WAD2MAP
-
- Here's what we all want: a program to automatically convert the
- DOOM maps to Duke3D maps!
-
- Unfortunately, the system crashes when trying to convert a PWAD
- (add-on WAD file) for DOOM. We get around this by using DEU (Doom
- Editing Utility) or a similar tool to change the first level of
- the original DOOM (the IWAD) to the PWAD. To find out how to do
- this, read the DEU docs.
-
- There are two ways to make a .MAP from a .WAD: with conversion
- (trying to convert the DOOM walls and objects to Duke3D walls and
- objects - the recommended method) or without conversion (for
- those brave souls who want to try to run everything on DOOM
- graphics and can face reprogramming every single sprite).
-
- With conversion:
- WAD2MAP D:\GAMES\DOOM\DOOM.WAD E1M1 DUKE.TXT
-
- Without conversion:
- WAD2MAP D:\GAMES\DOOM\DOOM.WAD E1M1
-
- The DUKE.TXT file is an ASCII file listing the things to be
- converted. You're very welcome to mess around in it and try to
- improve it. If you create a perfect one, let me know!
-
- Note that there's still plenty of work to be done on a fully
- converted .WAD. You'll have to load it into BUILD and check every
- single object, sector, texture (the HOM is back!) and wall.
- I've had some walls crash on me after conversion, and I haven't
- yet found out why - seems to be caused by sprites hanging about
- in midair.
-
- If you did the WAD->MAP without conversion, you'll have to use
- DOOMs PALETTE.DAT (automagically created for you) _and_ you'll
- have a lot of work in front of you: not only do none of the doors
- etc work, but you'll have to shift the graphics for the sprites
- as well.
- But you'll be able to play DOOM maps with DOOM textures in Duke3D
- (wheeee).
- 9.2 Future add-ons
-
-
- This section contains a list of vapour-ware :)
- Both software users are wishing for and projects currently in the
- making are listed here.
-
- 9.2.1 Add-on software wish list
-
- Attention programmers! Here is a wish list, created by the DN3D
- players, of add-on software that should be made for DN3D. If you
- would like to make an addition to this list, please send me E-
- mail.
- Additionally, if you are planning on creating one of these
- utilities, tell me, and I'll move it to the "Add-on software in
- the making" chapter.
-
- * A DEU-like pre-editor for the rough work (to be fine-tuned
- later by BUILD.EXE). Ideally, this preeditor would be
- network-capable to allow several people to work on a level
- simultaneously.
-
- * Automatic .CON file patcher to allow easy inclusion of
- .CON modifications.
-
- * Lots of additional graphics, allowing the building of
- realistic 'normal' street and house maps.
-
- * A program to organize and keep track of additional .MAP
- files. Ideally, this would allow us to enter a description
- to each map, find a map quickly and launch it straight
- into Duke3D.
-
- 9.2.2 Add-on software in the making
-
- This chapter tells about add-on software which is being currently
- worked on.
- If you are working on something that is not in here, please send
- me E-mail so I can put it in.
- In this section, you can also request help on creating some add-
- on software.
-
-
-
-
-
-
- Chapter 10
-
- Troubleshooting
-
-
- 10.1 Common questions
-
-
- 10.1.1 *My 3D mode messes up*
-
- A common lament.
-
- You've forgotten that the contents of the entire \GOODIES\BUILD
- directory have to be copied into your Duke3D directory. The 3D
- mode requires the DUKE3D.GRP or the TILESxxx.ART files to work
- properly.
-
- So, assuming that your CD-ROM is drive E:
-
- CD C:\GAMES\DUKE3D
- COPY E:\GOODIES\BUILD\*.*
- ATTRIB -R *.*
-
- 10.1.2 How do I copy sectors?
-
- Copying sectors is non-trivial. If done normally, all red lines
- turn white and the copy is messed up.
-
- To copy a sector, you'll have to create a holding shell for it
- first. This shell must be the exact same size and shape as the
- sector to copy and must consist of white lines (single-sided).
-
- Now select the original sector using RAlt-Mouse. Press [Ins]
- before moving the mouse. Move the sector onto the holding shell
- and press [Ins].
- Voila!
-
- You might ask why bother if you have to build the holding shell
- anyway? Well, the sector being copied can _contain_ plenty other
- sectors. And it's copied perfectly, complete with textures,
- shading, tags...
-
- 10.1.3 I'm using Windoze/Win95, and...
-
- Tough luck; I don't have any pity for people who can't exit
- Windoze to play DOS games.
-
- 10.1.4 I can't select sprites
-
- If you can't seem to select a sprite, there are two possible
- reasons:
-
- * Two sprites are overlapping each other.
- In this case, the sprite _is_ blinking, but you aren't
- seeing it. Try to move the sprite anyway.
-
- * You've switched the grid off.
- Sprites can only be selected if a grid is shown on the
- screen.
-
- 10.1.5 How do I make a flat sprite double-sided?
-
- Point at it in 3D mode and press [1].
-
- 10.1.6 How do I view the original maps?
-
- Extract them from the DUKE3D.GRP file:
-
- KEXTRACT DUKE3D.GRP *.MAP
-
- 10.1.7 How do I use new maps?
-
- Start Duke3d with
-
- DUKE3D -map mapname.map
-
- Don't use DUKE3D /map mapname.map, it'll turn off your monsters.
-
- 10.1.8 No monsters in new maps?
-
- This can have two reasons:
- * Most user maps are for DukeMatch only, and thus don't
- contain any monsters.
-
- * You've started the map like this: DUKE3D /map mapname.map
- Try DUKE3D -map mapname.map
-
- 10.1.9 *How do I use the new .VOC and .MIDs?*
-
- If you get new .VOC and .MID files with a new level, simply copy
- them into your Duke3D directory. Duke3D has a list of all sounds
- (VOC) and music fies (MID) in the DEFS.CON - if it finds a file
- with the same name in its main directory, it will use this one
- instead.
-
- Press [F5] and [Shift-F5] during the game to select different
- songs.
-
- 10.1.10 How do I show the wall data?
-
- If lots of sprites are real close to a wall, it can be difficult
- showing the wall data with [Alt]-[TAB].
-
- Press [G] several times to turn off the grid - now you'll only be
- able to select walls.
-
- 10.1.11 I can't save the changes in BSetup
-
- That's because you didn't remove the read-only attribute from
- your files after copying them from the CD-ROM. Try this:
-
- ATTRIB -R *.*
-
- 10.1.12 The game ends with 'MAP E1L9.MAP not found!'
-
- Yes, user maps loaded via the '-map' parameter are loaded as
- E1L8. If you end the level, the program automatically looks for
- the next level, E1L9 and dies if it doesn't find it.
-
- Thus if you want to play several levels behind each other, call
- the others E1L9.MAP (or E1L10/E1L11.MAP) and copy them into your
- Duke3d directory.
-
- 10.1.13 Can the subway speeds be changed?
-
- No - Todd Replogle confirmed that the subways run at a fixed
- speed.
-
- 10.1.14 How do I place active tripmines?
-
- Use tile number 2566 instead of 27 (ammo).
-
- 10.1.15 *How can I make a mirror shootable?*
-
- Create it as a one-sided wall instead of a masked wall (press [1]
- instead of [M]). Don't forget to make it hittable [H] and
- blocking [B].
-
- 10.1.16 How do I shade a whole room at once?
-
- First select the sectors to shade using RAlt-Mouse in 2D mode.
- Then switch in 3D mode, point at any wall and shade away!
- Afterwards, press RAlt in 2D mode again to deselect the sectors.
- This trick works with visibility setting as well.
-
- 10.1.17 *The parallaxed sky looks messed up!*
-
- When you parallax a sky, it can look strange in BUILD - the stars
- texture spilling over into the hollywood texture is an example.
- Don't worry about it - it looks fine in Duke3D itself.
-
- 10.1.18 *I've parallaxed the sky and now Duke dies!*
-
- Parallaxing a BIGORBIT texture will kill Duke immediately upon
- entering that sector, even in God mode.
- However, it you set the sky palette to anything except 0 (3 works
- fine), Duke won't be killed.
-
- 10.1.19 How do I set the par time?
-
- You can't set a par time in your .map file - the times are stored
- in USER.CON, line 329 ff.
-
- We'll have to wait until somebody writes a simple .CON patcher
- (hint, hint).
-
-
- 10.2 Bugs in the game
-
-
- The game itself contains some interesting bugs, none of them
- serious.
-
- 10.2.1 Holodukes
-
- 10.2.1.1 Bug
-
- Not sure if this is a bug or not, but holodukes can be
- distinguished from Real Men easily:
-
- * They don't cast shadows.
-
- * They don't glow in night vision.
-
- 10.2.1.2 Workaround
-
- None known.
-
- 10.2.2 The shrinker
-
- 10.2.2.1 Bug
-
- If you shrink something (a monster or a dancer) and then freeze
- it, it will stay small when it thaws.
-
- 10.2.2.2 Workaround
-
- Don't allow shrinkers and freezers in the same level if this bugs
- you.
-
- 10.2.3 Endless ammo
-
- 10.2.3.1 Bug
-
- If you freeze, for example, a pig cop, it might drop a weapon.
- If you then allow it to thaw and freeze it again (easy, because
- it's already severely weakened), it might drop another weapon.
- Repeat until you're sick of it.
-
- 10.2.3.2 Workaround
-
- None known. If you want to keep ammo away from the players (for
- shame!), don't add the freezer.
-
- 10.2.4 Remote switch triggering
-
- 10.2.4.1 Bug
-
- If a switch is placed on a thin wall, you can trigger it from the
- other side of the wall.
-
- 10.2.4.2 Workaround
-
- Place switches on thicker or even outside walls.
-
- 10.2.5 Underwater toilets
-
- 10.2.5.1 Bug
-
- Somebody actually had the idea of placing a toilet underwater...
- But when Duke uses it, he's unable to surface again.
-
- 10.2.5.2 Workaround
-
- None - drown the bastard ;)
-
- 10.2.6 Explosions
-
- 10.2.6.1 Bug
-
- Explosions are often clipped incorrectly, and you can see a part
- of a wall or sprite overlapping it.
-
- 10.2.6.2 Workaround
-
- None - this seems to be caused by the fact that the clipping for
- a sprite is worked out from its midpoint - if the sprite is big
- and unhappily placed, the clipping can fail.
- Not terribly serious, though.
-
- 10.2.7 Crash on shattering objects
-
- 10.2.7.1 Bug
-
- If you break too many objects at the same time (I shot an RPG
- into a very well-stocked bar) the game will crash.
-
- 10.2.7.2 Workaround
-
- Don't place too many breakable objects near each other while
- designing a map. ## Anybody found out the limit? 32? 64?
-
- 10.2.8 Breaking unbreakable glass
-
- 10.2.8.1 Bug
-
- Glass marked as unbreakable can still be shattered by an
- explosion (bomb) nearby.
-
- 10.2.8.2 Workaround
-
- None known. ##
-
- 10.2.9 Trip mines
-
- 10.2.9.1 Bug
-
- Trip mines don't work well with mirrors or moving sectors: They
- don't reflect in the mirror (looking completely wrong), and the
- beam breaks up in a moving sector, creating a rather strange
- effect.
- All this grief is because the beam is actually a collection of
- sprites.
-
- 10.2.9.2 Workaround
-
- None known. Just don't place trip mines in such a way that the
- beam hits a mirror.
-
- 10.2.10 Phantom bullet-holes
-
- 10.2.10.1 Bug
-
- If you design a one-sided glass wall and shoot at it from the
- wrong side, bullet-holes will appear in the glass. If you then
- shatter if from the right side, the bullet holes will stay in
- mid-air.
-
- 10.2.10.2 Workaround
-
- Who cares?
-
-
- 10.3 Bugs in BUILD
-
-
- Like any complex CAD software, BUILD has some bugs as well. Some
- of them we have to be aware of, most are just weird.
-
- 10.3.1 *Using a Busmouse*
-
- 10.3.1.1 *Bug*
-
- Using a busmouse, BUILD can crash after displaying the disclaimer
- page.
-
- 10.3.1.2 *Workaround*
-
- Try different mouse drivers, one of them works (anybody know
- which one?) ##
-
- 10.3.2 Selecting long lines
-
- 10.3.2.1 Bug
-
- If a line is too long, you can't select it anymore by moving the
- cursor near it. Thus you also can't insert new points on it, for
- example.
-
- 10.3.2.2 Workaround
-
- Keep the lines short by inserting points on too long lines:
- shorten the line, insert a point, lengthen the line again, move
- the newly inserted point into the middle of the line.
-
- 10.3.3 Splitting a sector
-
- 10.3.3.1 Bug
-
- Splitting a sector containing another sector (like a door) is
- often a bad idea. I've had lots of sectors disappear on me
- already.
-
- 10.3.3.2 Workaround
-
- None known so far. Save your work first.
-
- 10.3.4 Selecting sprites
-
- 10.3.4.1 Bug
-
- If several sprites are exactly over each other, they don't start
- to flicker as they are selected.
-
- 10.3.4.2 Workaround
-
- Be aware of this, try to move the sprite anyway.
-
- 10.3.5 Autoaligning textures
-
- 10.3.5.1 Bug
-
- When pressing [.] in 3D mode to autoalign textures, the system
- hangs at times.
-
- 10.3.5.2 Workaround
-
- I don't know of any workaround to this.
- Save before your press [.], and don't use it needlessly.
-
- 10.3.6 Displaying memory info
-
- 10.3.6.1 Bug
-
- When pressing [']-[M] to display the memory info, the system will
- be unstable, crashing when returning to 3D mode.
-
- 10.3.6.2 Workaround
-
- None known. Don't use this function, you don't need it anyway.
-
- 10.3.7 Function keys in 3D mode
-
- 10.3.7.1 Bug
-
- In 3D mode, the function keys [F5], F[6], F[7] and F[8]
- evidentially try to display the same help screens as they do in
- 2D, messing up the graphics in the process.
-
- 10.3.7.2 Workaround
-
- Simply press [NumEnter] twice to jump to 2D mode and straight
- back into 3D.
-
- 10.3.8 Deleting sectors
-
- 10.3.8.1 Bug
-
- You can run into LOTS of trouble when deleting sectors.
- 10.3.8.2 Workaround
-
- Here are some general tips on deleting sectors:
-
- * Remove all sprites (including sector tags, etc) from the
- sector before deleting it.
-
- * Don't delete a sector by collapsing it (moving all points
- over each other).
-
- * To delete a two-sided sector, join it with the sector
- around it.
-
- 10.3.9 Copying sectors
-
- 10.3.9.1 Bug
-
- Copying sectors doesn't work properly - the copied sectors can't
- be inserted into existing sectors (the lines turn one-sided).
-
- 10.3.9.2 *Workaround*
-
- The problem is because red lines are two-sided and only the one
- side (the inner one) is copied, producing a white one-sided line.
-
- Thus we have to give the system a line first: Build a 'shell'
- sector made up of white lines where you want to copy your sector.
- This sector must have the exact same size and shape as the sector
- to be copied.
-
- Now just copy your old sector over the shell sector and -voila!-
- the outer lines are now red.
-
- The advantage: the sector to be copied can contain plenty other
- sectors. Thus it might be a good idea to build a library of
- complex objects, encase them in simple rectanglular sectors and
- just copy these.
-
- 10.3.10 FPU reliance
-
- 10.3.10.1 Bug
-
- It would seem that BUILD runs somewhat unstable on a system
- without an FPU (like an 486SX).
- This is not a terribly serious bug IMO, as most people are using
- 486DXs or Pentium CPUs these days.
-
- 10.3.10.2 Workaround
-
- Download a good emulator. ## Anybody know any exact ftp
- locations?
-
-
- 10.4 *BUILD wishlist*
-
-
- Here's a wishlist for features in BUILD - most of them are pretty
- simple and could be fixed with a simple patch (hint, hint).
- If some hero out there decides to create a BUILD replacement,
- please keep these in mind :)
-
- * Fix the bugs mentioned above.
- Especially the one about copying sectors.
-
- * Auto-repeat the '[' and ']' keys in 3D mode.
- It's real irritating to press these buttons 101 times to
- get the tilt just right.
-
- * Reach normal player height in float mode at the touch of a
- button.
- I often find myself switching to Game Mode just to set the
- height above ground correctly.
-
- * Center view button.
- If case you've looked up and down and now need to see the
- world as the player will.
-
- * User-buildable help screens.
- These would allow you to create your own help screens.
-
- * Allow us to change sprite numbers in 2D mode. It's
- terribly irritating to change sector effectors inside
- doors with the ceiling already lowered to the floor...
-
- * Control the grid spacing via the number keys on the top of
- the keyboard.
-
- * Have a Grid on/off toggle key.
- It's irritating switching through the grid resolutions all
- the time.
-
- * Allow us to scale selected sectors.
-
- * Allow circle drawing via midpoint and radius selection
- (creating a new sector).
-
- * Allow us to tag several objects to change at the same
- time.
-
- * Allow us to set most values directly.
- This especially applies to the Wall->Sector pointers, but
- is also good for flags, room heights, etc.
-
- * Allow us to change both the floor/roof of a sector at once
- (enabling us to shift a door down without changing its
- height, for example).
-
- * Toggle the data windows on and off, enabling more of the
- map to be displayed.
-
- * Perhaps use BSetups Screen resolution for 2D mode as well?
- Using 1024x768 in editing would be great.
-
- * 3D option to copy a sprite with _all_ settings (tags,
- shade, scale, direction...everything).
-
- * Allow us to use [F7] in Build like we can in the game
- itself, to make sure we can get the scaling right.
-
- * Allow us to insert pre-built library objects (hinged doors
- spring to mind, or stairs) easily.
-
-
-
-
-
-
-
- Chapter 11
-
- Reference lists
-
-
- This chapter contains useful reference material which you might
- even want to print out and keep handy while designing levels.
-
-
- 11.1 List of original levels
-
-
- I very very often refer to the original levels ("Now just how did
- they achieve this neat effect?") but don't know the names and
- level numbers by heart.
- More info (like par times, etc) can be found in USER.CON, line
- 325ff).
-
- 11.1.1 L.A. Meltdown
-
- E1L1 Hollywood Holocaust
-
- E1L2 Red Light District
-
- E1L3 Death Row
-
- E1L4 Toxic Dump
-
- E1L5 The Abyss
-
- E1L6 Launch Facility (secret)
-
- E1L7 Faces Of Death (multiplayer)
-
- E1L8 User Map (if your map isn't named ExLx.MAP, this
- is where it'll end up)
-
- E1L9 Multiplayer 3 (like User Map)
-
- E1L10 Multiplayer 4 (like User Map)
-
- E1L11 Multiplayer 5 (like User Map)
-
- 11.1.2 Lunar Apocalypse
-
- E2L1 Spaceport
-
- E2L2 Incubator
-
- E2L3 Warp Factor
-
- E2L4 Fusion Station
-
- E2L5 Occupied Territory
-
- E2L6 Tiberius Station
-
- E2L7 Lunar Reactor
- E2L8 Dark Side
-
- E2L9 Overlord
-
- E2L10 Spin Cycle (secret)
-
- E2L11 Lunatic Fringe (secret)
-
- 11.1.3 Shrapnel City
-
- E3L1 Raw Meat
-
- E3L2 Bank Roll
-
- E3L3 Flood Zone
-
- E3L4 L.A. Rumble
-
- E3L5 Movie Set
-
- E3L6 Rabid Transit
-
- E3L7 Fahrenheit
-
- E3L8 Hotel Hell
-
- E3L9 Stadium
-
- E3L10 Tier Drops (secret)
-
- E3L11 Freeway (secret)
-
-
- 11.2 List of tiles
-
-
- This section contains a list of all tiles in the game, sometimes
- with a short explanation.
-
- A number like x,y or x..z denotes an animation sequence.
-
- 11.2.1 Control tiles
-
- 0 Ugly wall texture
- Default texture when creating new maps - is used
- as a marker to tell you to fix the textures.
-
- 1 Sector Effector
- Is invisible at game time, and is used to
- manipulate sectors and cause all kinds of special
- effects. Is usually placed inside the sector to
- effect. See list further on.
-
- 2 Activator
- Invisible at game time, use together with switches
- or touchplates to activate sector effectors in the
- same sector.
-
- 3 Touchplate
- Invisible at game time, it triggers an activator
- or masterswitch when a player enters the sector
- the touchplate is in.
-
- 4 ActivatorLocked
- Invisible at game time. It can be used to toggle a
- sectortag effect (meaning you can, for example,
- toggle the underwater flag of a sector by pressing
- a switch).
-
- 5 MusicAndSFX
- Invisible at game time, it handles music and sound
- play.
-
- 6 Locator
- Invisible at game time, it's used to define
- movement paths.
-
- 7 Cycler
- Invisible at game time, it pulses the light level
- in a sector.
-
- 8 MasterSwitch
- Invisible at game time. Triggered by a touchplate,
- it activates the sectortag function or a sector
- effector.
-
- 9 Respawn
- Invisible at runtime, it teleports in sprites when
- triggered by a touchplate.
-
- 10 GPSpeed
- Invisible at runtime, it sets movement speeds (for
- example, speed of closing doors).
-
- 11.2.2 Weapon sprites
-
- 21 The pistol.
-
- 22 The chaingun.
-
- 23 The RPG launcher.
-
- 24 The freezer.
-
- 25 The shrinker.
-
- 26 The pipebomb.
-
- 27 The tripbomb.
-
- 28 The shotgun.
-
- 29 The devastator.
-
- 11.2.3 Ammo sprites
-
- 37..39 Freezer ammo.
-
- 40 Pistol ammo.
-
- 41 Chaingun ammo.
-
- 42 Devastator ammo.
-
- 44 RPG ammo.
-
- 46 Shrinker ammo.
-
- 47 Box of pipebombs.
-
- 49 Shotgun ammo.
-
- 11.2.4 Item sprites
-
- 51 Small medkit.
-
- 52 Large medkit.
-
- 53 Portable medkit.
-
- 54 Armor.
-
- 55 Steroids.
-
- 56 Scuba gear.
-
- 57 Jetpack.
-
- 58 Spacesuit.
- This was evidentially planned as an item, but now
- we can just use it as decoration.
-
- 59 Night vision goggles.
-
- 60 Access card.
- Change the palette to set the cards color.
-
- 61 Protective boots.
-
- 100..115 Atomic health.
-
- 11.2.5 Special sprites
-
- 513 Bridge sprite
- Used to create a walkable bridge like in E1L1 near
- the exit.
-
- 11.2.6 Parallax (sky) textures
-
- Note that parallaxed space textures will make the relevant sector
- lethal to the player.
-
- 80,82,83 Moon surface.
- Can also be used as plain wall texture.
-
- 81 Moon surface with earth.
- Can also be used as plain wall texture.
-
- 84 Stars.
- Can also be used as plain wall texture.
-
- 85..87 Earth from space.
- Can also be used as plain wall texture.
-
- 88 Bright star with moon.
- Can also be used as plain wall texture.
-
- 89 Dark city scape.
-
- 90 Dark city scape, red windows.
-
- 91 City scape, lots of lit windows.
- 92 City scape with advertising (?) sign.
-
- 93 Just like 90.
- (Anybody know why? ##)
-
- 94 Solid red color.
-
- 95 Stars, like those over a desert.
-
- 96 City scape with many many lit windows.
- This texture seems messed up - some pink stripes
- are seen.
-
- 11.2.7 *Lights*
-
- 120 Vertical oval technical light, shootable.
-
- 121 Broken version of 120.
-
- 122 Horizontal oval technical light, shootable.
-
- 123 Broken version of 122.
-
- 124 Horizontal rectangular light (two neo tubes),
- shootable.
-
- 125 Shot version of 124.
-
- 126 Square technical light in four sectors.
-
- 127 Wavy technical light.
-
- 128 Rectangual technical light, consisting of 3 lamps.
-
- 225 Long narrow blue light (up/down), used in windows
- of space station.
-
- 229 Like 225, but left/right.
-
- 256 Thin horizontal light on gray metal wall.
-
- 260...262 Three small, blue, wildly flickering lights.
-
- 276 Small blue rectangular light in dark background.
-
- 310 Large circular blue light on dark background.
-
- 326 Large circular yellow light, fits 325.
-
- 11.2.8 Switches
-
- 130 Locked access switch (requiring card).
-
- 131 Open access switch.
-
- 132,133 Horizontal slot switch.
-
- 134,135 Vertical slot switch.
-
- 136,137 Rotating switch.
-
- 138,129 90 degree switch.
-
- 140,141 Massive power switch.
- 142..145 Endlevel switch with animation.
-
- 146..149 Multiswitch.
-
- 161,163 Red button switch.
-
- 164,165 Flat square switch.
-
- 166,167 Rotating lit switch.
-
- 168,169 Circular lit switch.
-
- 170,171 Access switch
-
- 11.2.9 Doors
-
- Doors consisting of two tiles are usually splitting doors.
-
- 11.2.9.1 Technical doors
-
- 150 Rising door with red panel.
-
- 151 Door side wall, fits 150.
-
- 152,153 Dark door, light row at top and bottom.
-
- 154,155 Door with circular pattern.
-
- 156 Modern dark blue door.
- Nice multipurpose tile.
-
- 157 Sliding door with nuke pattern on it.
-
- 158 Solid metal door with cross on it.
-
- 159 Narrow steel door with blue grip.
-
- 226 Locker door with space logo on it.
-
- 227 Locker door like 226, but plain.
-
- 242 Standard rising door with yellow/black tracks and
- cross-pattern.
-
- 243 Garage door in poor condition, good wall texture
- as well.
-
- 11.2.9.2 Normal
-
- 245 Light hotel door with small label.
-
- 11.2.10 *Floors*
-
- Most of these tiles can be used for walls as well, of course.
-
- 181 Smooth modern stone with circle pattern on it.
-
- 182 Dark gray tile.
- Useful for kitchen walls.
-
- 183 Dark gray tile with grid pattern.
-
- 184 Gray modern lined, looks like columns behind bars.
-
- 191 Scruffy rectangular tiles.
-
- 200..202 Animated green slime.
-
- 210 Many light ovals on dark background. Can probably
- be usefully resized.
-
- 211 Patterned square stone tiles (gray).
-
- 216 Square gray stone tile.
-
- 220 Square gray stone tile with rounded edges.
-
- 228 Square metal tiles with thin dark border.
-
- 315 Dark stone with propeller-pattern grate in it.
- Fits 312.
-
- 324 Dark dirty stone with lighter square pattern on
- it.
-
- 328 Fancy light/dark patterned stone.
-
- 336..338 Animated water.
-
- 11.2.11 Walls
-
- While these textures can be creatively used for anything, they
- sure look like walls to me.
-
- 11.2.11.1 *Machines*
-
- 185 Four gray machines with an indirect light above
- them.
-
- 186..190 Green pipes on tiles.
- Use 191 for same background without the pipes.
-
- 192 Like the tiles from 186, but lit by a single lamp.
-
- 222 Technical panel in green machine.
-
- 247 Fuse panel (?) set in gray wall. Fits 251.
-
- 293 Large monitor.
-
- 294...296 Computer side with blinking lights.
-
- 297 Computer front with CRT and disk drive.
-
- 301 Small monitor.
-
- 305 Computer front with red IR camera (?).
-
- 309 Black/Yellow striped acces panel, 'DANGER'
- underneath.
-
- 327 The movie projector.
-
- 345 Metal cut-out with three pipes. Usable as door as
- well.
-
- 346 Metal cut-out, fits 345.
-
- 347 Metal cut-out with several pipes, fits 345.
-
- 11.2.11.2 Space ship hull
-
- 233 Light tech wall with green stripe.
-
- 234 Manoeuvre thrusters.
-
- 235 Solar panels.
-
- 236 Triangular pattern.
-
- 237 Thick stripe.
-
- 248 More hull.
-
- 11.2.11.3 *Organics*
-
- 329 Empty white holder in green evil-looking wall.
-
- 330 Filled version of 329 (corpse in space suit).
-
- 333 Green goo growing on gray stone wall (fits 344).
-
- 334 Edge of 333.
-
- 11.2.11.4 *Air ducts*
-
- 341 Hole in air duct wall.
-
- 342 Air duct wall.
-
- 343 Like 342, with lichens.
-
- 11.2.11.5 Modern
-
- 204 Dark rounded edge on light gray, use with 205.
-
- 205 Two parallel dark stripes on light gray, use with
- 204 to create a special wall/door/sign.
-
- 207 Gray technical-looking wall with patterned stripe.
-
- 209 Similar to 207, but without the stripe.
-
- 212..215 Similar to 209.
-
- 217 Gray technical wall with two baby-blue (!) stripes
- on it.
-
- 223 Dark blue wall with metal rivets and light pipes
- lenghtwise.
-
- 224 Barred panel (?) for wall 223.
-
- 246 Light wall with embossed arrow pattern.
-
- 249,250 Like 246, but overgrown with slime.
-
- 251 Light wall with blue strip, lit from small lamps.
- Fits 247.
-
- 252 Like 251, but without the lamps.
-
- 11.2.11.6 *Metal*
-
- 193 Black metal, lit from the upper right.
-
- 194 Narrow metal strips, belonging to 193.
-
- 244 Dark corrugated metal, lit from lamp above.
-
- 255 Light gray wall edge, with a light strip.
-
- 257 Gray wall with light strips, fits 255.
-
- 286 Dark corrugated metal with x-shaped grid (like
- 285).
-
- 317 Dark corrugated metal held by horizontal bars.
-
- 318 Like 317, but tilted 90 degrees.
-
- 322 Horizontal slabs held by fat vertical bars.
-
- 323 Outside of trash container.
-
- 324 Inside of trash container.
-
- 11.2.11.7 *Concrete*
-
- 195 Heavy concrete, like inside of factory.
-
- 196 Reinforced concrete, fits to 195.
-
- 197 Reinforced concrete with lights, fits to 195.
-
- 254 Long thin heavy-looking concrete with lichens.
-
- 283 Heavily textured concrete with high blue stripe.
-
- 284 Heavily textured concrete with low blue stripe.
-
- 288 Concrete with vertical iron bars all the way down.
-
- 289 Like 288, but with the bars in the lower half
- only.
-
- 290 Joins 289 and 291.
-
- 291 Like 288, but with blue strip lower.
-
- 331 Unstructured red.
-
- 335 Rough I-shaped light gray.
-
- 340 Horizontal slabs held by vertical stripes.
-
- 11.2.11.8 *Stone*
-
- 231 Heavy tiled dark stone, with lichen on it.
-
- 232 Similar to 232, but patterned.
-
- 241 Smooth white stone (marble?).
-
- 258 Dark heavy wall with blue light strip on the
- bottom.
- 259 Plain gray wall in need of cleaning.
-
- 278 Heavy gray stone wall, rectangularily textured.
-
- 279 Small gray stone texture, fits 278.
-
- 280 Small green stone texture, fits 278.
-
- 281 Gray stone with A-frame patterns.
-
- 282 Gray stone with 279 patterns near the top.
-
- 287 Gray stone with column texture, suitable for low
- walls.
-
- 292 Dark gray rock held by vertical dark stone
- stripes.
-
- 311 Striped gray stone, heavy lichens on it.
-
- 312 Like 311, with metal X-grate on it.
-
- 313 Like 312, with light in middle of X.
-
- 314 Like 312, with light at the top.
-
- 319 Gray stone with tulip pattern.
-
- 320 Dark wall with fancy pattern in light stone.
-
- 321 Similar to 320, looks slightly damaged.
-
- 332 Red tiles.
-
- 344 Plain gray stone, fits 333.
-
- 11.2.11.9 Rock
-
- 238 Light rock with vertical dark fissures.
-
- 239 Light rock with stones in it, fits 238.
-
- 240 Irregular gray rock, could be used as blasted
- stone.
-
- 11.2.11.10 *Decoration*
-
- 277 Earth Defense Forces logo on gray stone wall.
-
- 11.2.12 *Grids*
-
- 285 X-shaped modern metal, like 286.
-
- 11.2.13 Technical-looking items
-
- 11,12 The floating demo recording camera.
-
- 203 Computer module with chips on it.
-
- 160 Steel pistons with green slime.
-
- 11.2.14 *Monitors*
-
- As far as I know, all monitors flicker somewhat and are
- breakable.
-
- 263 Cityscape with skyscrapers.
-
- 264 White map, showing labelled building.
-
- 265 Radio dish.
-
- 266 The earth.
-
- 267 The moon.
-
- 268..270 White noise.
-
- 271 Computer subway map.
-
- 272 Computer floorplan showing 4 circles.
-
- 273 Computer floorplan - zoomed version of 274.
-
- 274 Computer floorplan.
-
- 275 Computer map with target points.
-
- 11.2.15 Often-used special textures
-
- 70 Broken mirror.
- This texture is set automatically when a mirror is
- broken.
-
- 161 Dark door tracks.
-
- 198 Milk glass.
-
- 230 Invisible forcefield.
- Doesn't hurt you if touched, can be dimmed to
- invisibility.
-
- 852 Broken concrete
- Typically used inside blasted holes or damaged
- walls.
-
- 11.2.16 Diverse
-
- 20 A hollow frame, used in the status bar of the
- game.
-
- 30 The health box from the status bar.
-
- 31 The ammo box from the status bar.
-
- 33 The inventory box from the status bar.
-
- 218 Long thin gray metal plate with a rivet in the
- top.
-
- 219 Tree trunk.
-
- 221 Metal cover with space logo embossed on it.
-
- 11.2.17 Unclassified (please assist!)
-
- 62 Small red sphere.
-
- 63 Small yellow sphere.
-
- 64 Small green sphere.
-
- 199 Solid light blue.
-
- 206 Wall edge?
-
- 208 Wall edge? (similar to 206).
-
- 253 Long thin texture, door track?
-
-
- 11.3 List of Palettes
-
-
- Textures and sprites can be set to their own palette via
- [Alt]-[P]. The palette info (together with distance shading and
- translucence effects) is stored in PALETTE.DAT.
-
- Here's a list of all useful palettes found so far:
-
- 0 Default
- The standard palette. Used on a key, it defines a
- blue keycard.
-
- 1 Blue
- A sprite with this palette will only appear in
- multi-player mode.
-
- 2 Red
-
- 3 Normal
- Use this on the floor or ceiling to create non-
- attacking vehicles under parallaxed skies.
-
- 4 Special
- Makes sprites solid black - usful for turning
- forcefields invisible, for example.
-
- 6 Night-vision
-
- 7 Yellow
-
- 8 Green
- Changes water to green slime.
-
- 10 Red clothing
-
- 11 Light green clothing
-
- 12 Light gray clothing
-
- 13 Dark grey clothing
-
- 14 Dark green clothing.
- Set the nukebutton palette to 14 to have it show
- up in the proper 'secret level button' color.
-
- 15 Brown clothing.
- 16 Dark blue clothing.
-
- 17 Blue skin, green clothes.
- Nice trooper palette - gives them a blue, alien
- skin.
-
- 18 Light gray clothing.
-
- 19 Red skin, grey clothes.
-
- 20 Blue skin, grey clothes.
-
- 21 Red card
- Defines a red keycard. Causes red clothes, too.
- A miniboss is created by setting a BOSS1 to this
- palette.
-
- 22 LIght gray clothes.
-
- 23 Yellow card
- Defines a yellow keycard.
-
- 24 Nice trooper palette - gives them a red and blue
- uniform.
-
- 25 Turns accessories red (like money from a
- stripper).
-
- 26+ Seems to cause trouble, sometimes the sprite can't
- be changed back.
-
-
- 11.4 List of sounds
-
-
- Except for some typos and formatting, I took this section
- straight from Shane King aka Scatt Man (scattman@bssc.edu.au).
- Thanks loads!
-
- 11.4.1 Format of this list
-
- Sound Number Used in build.
-
- Sound Name This is the name that Duke Nukem uses internally
- to reference the sound.
-
- .VOC file name The .voc files are stored in the duke3d.grp file.
-
- Min/Max frequency adjustment
- A random value between these two limits is chosen
- each time the sound is played.
-
- Priority If there are too many sounds to be played at once
- the higher (I think) priority sounds get played.
-
- Attributes
-
- * Bit 0 (%) Repeat
- This sound will be played over and over.
-
- * Bit 1 ($) Ambient Sound
- This sound can be used as an ambient sound.
-
- * Bit 2 (#) Duke Talk
- This sound will follow the player.
-
- * Bit 3 (@) Adult Mode
- This sound will only be played if adult
- mode is on.
-
- * Bit 4 (!) Random Ambient Sound
- This sound can be used as a random ambient
- sound.
-
- Volume adjustment
- Used to make the sound louder or softer.
-
- Sample rate (Khz)
- Multi means the .voc file has multiple blocks.
-
- Description of sound
-
- A + in any section denotes that the section is not defined, hence
- following sections are also not defined
-
- 11.4.2 The sounds themselves
-
- + SLIM_PAIN slimpn 0 0 3 ----- 0 +
- 0 KICK_HIT kickhit 0 0 4 ----- 0 5.988
- Duke's Mighty foot hits
- 1 PISTOL_RICOCHET ricochet 0 0 0 ----- 4096 5.988
- Pistol ricochet of solid object
- 2 PISTOL_BODYHIT bulithit 0 0 0 ----- 0 5.988
- A bullet hits somebody
- 3 PISTOL_FIRE pistol -64 0 254 ----- 0 5.988
- Pistol firing
- 4 EJECT_CLIP clipout 0 0 3 ----- 0 5.988
- Duke ejects a used clip
- 5 INSERT_CLIP clipin 512 512 3 ----- 0 5.988
- Duke inserts a new clip
- 6 CHAINGUN_FIRE chaingun -204 -204 254 ----- 512 10.989
- Chaingun firing
- 7 RPG_SHOOT rpgfire -32 0 4 ----- 0 5.988
- RPG Firing
- 8 POOLBALLHIT poolbal1 0 0 0 ----- 0 8
- A poolball is hit
- 9 RPG_EXPLODE bombexpl -1024 1024 254 ----- 0 multi
- A RPG rocket explodes
- 10 CAT_FIRE catfire 512 768 4 ----- 0 5.988
- Freeze Ray Firing
- 11 SHRINKER_FIRE shrinker -512 0 4 ----- 0 8
- Shrinker Ray Firing
- 12 ACTOR_SHRINKING shrink 0 0 2 ----- 0 8
- Somebody being shrunk
- 13 PIPEBOMB_BOUNCE pbombbnc 0 0 2 ----- 6144 5.988
- Tink of a pipe bomb bouncing
- 14 PIPEBOMB_EXPLODE bombexpl -512 0 128 ----- 0 multi
- A pipe bomb being detonated
- 15 LASERTRIP_ONWALL lsrbmbpt 0 0 3 ----- 0 5.988
- A laser trip bomb being placed on a wall
- 16 LASERTRIP_ARMING lsrbmbwn 0 0 3 ----- 0 5.988
- Beeping of a laser trip bomb about to explode
- 17 LASERTRIP_EXPLODE bombexpl -512 0 4 ----- 0 multi
- A laser trip bomb exploding
- 18 VENT_BUST ventbust -32 32 2 ----- 0 5.988
- Breaking a vent or fan
- 19 GLASS_BREAKING glass -412 0 3 ----- 8192 8
- Glass window being smashed
- 20 GLASS_HEAVYBREAK glashevy -412 0 3 ----- 8192 11.025
- Glass items being broken
- 21 SHORT_CIRCUIT shorted 0 0 0 ----- 6500 8
- Duke gets an electric shock
- 22 ITEM_SPLASH splash 0 0 2 ----- 0 multi
- Item dropped into water
- 23 DUKE_BREATHING hlminhal 0 0 255 --#-- 0 +
- 24 DUKE_EXHALING hlmexhal 0 0 255 --#-- 0 +
- 25 DUKE_GASP gasp 0 0 255 --#-- 0 8
- Duke catching breath after being under water
- 26 SLIM_RECOG slirec06 0 0 3 ----- 0 11.025
- Green slime sights Duke
- 27 ENDSEQVOL3SND1 KICKHEAD 0 0 254 ----- 0 11.025
- Duke kicks bosses head at goal
- 28 DUKE_URINATE pissing 0 0 4 ----- 0 5.988
- Duke going to the toilet
- 29 ENDSEQVOL3SND2 GMEOVR05 0 0 254 ----- 0 8
- Duke "Game over"
- 30 ENDSEQVOL3SND3 CHEER 0 0 254 ----- 0 11.025
- The crowd cheering Duke
- 31 +
- 32 DUKE_PASSWIND +
- 33 DUKE_CRACK WAITIN03 0 0 255 --#-- 0 8
- Duke "What are you waiting for, Christmas?"
- 34 SLIM_ATTACK slimat 0 0 3 ----- 0 11.025
- Green Slime Attacking
- 35 SOMETHINGHITFORCE teleport 0 0 2 ----- 8192 5.988
- Something hitting a force field
- 36 DUKE_DRINKING drink18 -128 128 2 --#-- 0 11.025
- Duke drinking water
- 37 DUKE_KILLED1 damn03 0 0 255 -@#-- 0 8
- Duke "Damn"
- 38 DUKE_GRUNT exert 0 0 2 --#-- 0 11.025
- Duke - Uuugh
- 39 DUKE_HARTBEAT hartbeat 0 0 0 ----- 0 5.988
- Duke's heart beating
- 40 DUKE_ONWATER wetfeet 0 0 4 ----- 0 11.025
- Duke splashing through water
- 41 DUKE_DEAD DMDEATH -64 64 255 --#-- 0 8
- Duke's death scream
- 42 DUKE_LAND land02 0 0 2 ----- 0 8
- Duke Landing on the ground (Not hurt)
- 43 DUKE_WALKINDUCTS ductwlk -64 128 2 ----- 0 multi
- Duke walking in air ducts
- 44 DUKE_GLAD +
- 45 DUKE_YES yes 0 0 255 --#-- 0 +
- 46 DUKE_HEHE +
- 47 DUKE_SHUCKS +
- 48 DUKE_UNDERWATER scuba 0 0 2 ----- 0 multi
- Duke underwater with scuba
- 49 DUKE_JETPACK_ON jetpakon 0 0 4 ----- 0 8
- Duke turning jet pack on
- 50 DUKE_JETPACK_IDLE jetpaki 0 0 1 ----- 0 8
- Duke with jet pack on
- 51 DUKE_JETPACK_OFF jetpakof 0 0 2 ----- 0 8
- Duke turning jet pack off
- 52 LIZTROOP_GROWL +
- 53 LIZTROOP_TALK1 +
- 54 LIZTROOP_TALK2 +
- 55 LIZTROOP_TALK3 +
- 56 DUKETALKTOBOSS duknuk14 0 0 255 -@#-- 0 8
- Duke "I'm Duke Nukem and I'm coming to get the rest of you alien
- bastards"
- 57 LIZCAPT_GROWL +
- 58 LIZCAPT_TALK1 +
- 59 LIZCAPT_TALK2 +
- 60 LIZCAPT_TALK3 +
- 61 LIZARD_BEG chokn12 0 0 3 ----- 0 multi
- Alien shaking head when not quite dead
- 62 LIZARD_PAIN +
- 63 LIZARD_DEATH +
- 64 LIZARD_SPIT lizspit 0 0 0 ----- 0 8
- Lizard spitting at Duke
- 65 DRONE1_HISSRATTLE +
- 66 DRONE1_HISSSCREECH +
- 67 DUKE_TIP2 shake2a 0 0 255 --#-- 0 8
- Duke "Shake it baby"
- 68 FLESH_BURNING fire09 -256 0 0 ----- 6100 multi
- Fire crackling
- 69 SQUISHED squish 0 0 3 ----- 0 8
- Someone is squished
- 70 TELEPORTER teleport 0 0 0 ----- 0 5.988
- A teleporter is used
- 71 ELEVATOR_ON gbelev01 0 0 0 ----- 0 8
- Elevator is used
- 72 DUKE_KILLED3 thsuk13a 0 0 255 -@#-- 0 8
- Duke "Uugh, this sucks"
- 73 ELEVATOR_OFF gbelev02 0 0 0 ----- 0 8
- Elevator stopping
- 74 DOOR_OPERATE1 slidoor -256 0 0 ----- 0 11.025
- Metalic Sliding Door
- 75 SUBWAY subway 0 0 0 ----- 0 multi
- A subway train
- 76 SWITCH_ON switch 0 0 0 ----- 0 multi
- Click of a switch being used
- 77 FAN fan 0 0 0 ----- 0 +
- 78 DUKE_GETWEAPON3 groovy02 0 0 255 --#-- 0 8
- Duke "Groovy"
- 79 FLUSH_TOILET flush 0 0 3 ---$- 0 multi
- Toilet being flushed
- 80 HOVER_CRAFT hover 0 0 0 ----- 0 +
- 81 EARTHQUAKE quake 0 0 0 ----- 0 multi
- Earthquake rumble
- 82 INTRUDER_ALERT alert 0 0 0 ----- 0 5.988
- Warning alarm
- 83 END_OF_LEVEL_WARN monitor 0 0 0 ----- 0 8
- End of level warning
- 84 ENGINE_OPERATING onboard 0 0 0 ---$- 0 multi
- Low pitched grind of engine operation
- 85 REACTOR_ON reactor 0 0 0 ---$- 0 multi
- High pitched hum of reactor
- 86 COMPUTER_AMBIENCE compamb 0 0 0 ---$- 0 11.025
- Computer operation sound
- 87 GEARS_GRINDING geargrnd 0 0 0 ---$- 0 5.988
- Turning gears grinding together
- 88 BUBBLE_AMBIENCE bubblamb -256 0 0 ---$- 0 multi
- Water bubbling
- 89 MACHINE_AMBIENCE machamb 0 0 0 ---$- 0 11.025
- Thumping of machine operating
- 90 SEWER_AMBIENCE drip3 0 0 0 ----- 0 11.025
- Drip into water
- 91 WIND_AMBIENCE wind54 0 0 0 ---$- 0 multi
- Gust of wind
- 92 SOMETHING_DRIPPING drip3 0 0 0 ----- 9000 11.025
- Loud drip
- 93 STEAM_HISSING steamhis 0 0 0 ----% 8192 8
- Steam hissing from pipe or pot
- 94 THEATER_BREATH +
- 95 BAR_MUSIC barmusic 0 0 254 ---$% 0 11.025
- Dance music in bar (as in bar in e1l2)
- 96 BOS1_ROAM bos1rm 0 0 3 ----- 0 11.025
- Boss 1 screaming
- 97 BOS1_RECOG bos1rg 0 0 5 ----- 0 8
- Boss 1 sees Duke
- 98 BOS1_ATTACK1 chaingun 0 0 3 ----- 0 10.989
- Boss 1 using chaingun
- 99 BOS1_PAIN bos1pn 0 0 3 ----- 0 8
- Boss 1 in pain
- 100 BOS1_DYING bos1dy 0 0 3 ----- 0 8
- Boss 1 biting the dust
- 101 BOS2_ROAM b2atk01 0 0 3 ----- 0 11.025
- Boss 2 screaming
- 102 BOS2_RECOG b2rec03 0 0 3 ----- 0 11.025
- Boss 2 sees Duke
- 103 BOS2_ATTACK b2atk02 0 0 3 ----- 0 11.025
- High pitched scream as boss 2 attacks
- 104 BOS2_PAIN b2pain03 0 0 3 ----- 0 11.025
- Boss 2 in pain
- 105 BOS2_DYING b2die03 0 0 3 ----- 0 11.025
- Boss 2 dying
- 106 GETATOMICHEALTH teleport 2048 2048 255 ----- 0 5.988
- Sound when Duke picks up a health atom
- 107 DUKE_GETWEAPON2 getsom1a 0 0 255 --#-- 0 8
- Duke "Come get some"
- 108 BOS3_DYING b3die03g 0 0 3 ----- 0 11.025
- Boss 3 Dying
- 109 SHOTGUN_FIRE shotgun7 0 512 254 ----- 0 11.025
- 16bit
- Shotgun blast
- 110 PRED_ROAM roam06 0 0 3 ----- 0 multi
- Trooper sees Duke
- 111 PRED_RECOG predrg 0 0 3 ----- 0 multi
- Trooper sees Duke
- 112 PRED_ATTACK gblasr01 256 256 3 ----- 7680 8
- Trooper fires at Duke
- 113 PRED_PAIN predpn 200 500 3 ----- 0 8
- Trooper screaming in pain
- 114 PRED_DYING preddy 0 400 3 ----- 0 multi
- Trooper dying
- 115 CAPT_ROAM predrm 0 200 3 ----- 0 multi
- Lizard Captian roaming
- 116 CAPT_ATTACK chaingun 0 0 3 ----- -200 10.989
- Lizard Captain attacking with chaingun
- 117 CAPT_RECOG predrg -400 0 3 ----- 0 multi
- Lizard Captain sees player
- 118 CAPT_PAIN predpn -200 100 3 ----- 0 8
- Lizard Captain in pain
- 119 CAPT_DYING preddy -200 100 3 ----- 0 multi
- Lizard Captain dies
- 120 PIG_ROAM roam29 -200 400 3 ----- 0 multi
- Pig Cop roaming
- 121 PIG_RECOG pigrg -200 400 3 ----- 0 8
- Pig Cop sees Duke
- 122 PIG_ATTACK shotgun7 -256 256 4 ----- 0 11.025
- 16bit
- Pig Cop fires shotgun
- 123 PIG_PAIN pigpn 100 800 3 ----- 0 8
- Pig Cop grunts in pain
- 124 PIG_DYING pigdy -800 100 3 ----- 0 8
- Pig Cop death squeal
- 125 RECO_ROAM jetpaki 0 0 3 ----- 0 8
- Recon Car Moving
- 126 RECO_RECOG pigrg 0 0 3 ----- 0 8
- Recon Car sees Duke
- 127 RECO_ATTACK gblasr01 256 256 3 ----- 7680 8
- Recon Car firing at Duke
- 128 RECO_PAIN pigpn 0 0 3 ----- 0 8
- Recon car grunts in pain
- 129 RECO_DYING pigdy 0 0 3 ----- 0 8
- Recon Car Dies
- 130 DRON_ROAM snakrm 0 0 3 ----- 0 multi
- Drone roaming
- 131 DRON_RECOG snakrg 0 0 3 ----- 0 11.025
- Drone sees Duke
- 132 DRON_ATTACK1 snakatA 0 0 3 ----- 0 11.025
- High pitches zzzzz when drone attacks Duke
- 133 DRON_PAIN snakpn 0 0 3 ----- 0 11.025
- Drone in Pain
- 134 DRON_DYING snakdy 0 0 3 ----- 0 11.025
- Growl when Drone dies
- 135 COMM_ROAM commrm 0 0 3 ----- 0 11.025
- Fat commander roaming
- 136 COMM_RECOG commrg 0 0 3 ----- 0 11.025
- Fat Commander sees Duke and says "Die Human"
- 137 COMM_ATTACK commat 0 0 3 ----- 0 11.025
- Fat Commander attacking and says "Suck it down"
- 138 COMM_PAIN commpn 0 0 3 ----- 0 11.025
- Fat Commander in pain
- 139 COMM_DYING commdy 0 0 3 ----- 0 11.025
- Extended scream of commander dying
- 140 OCTA_ROAM octarm -200 0 3 ----- 0 8
- Octobrain roaming
- 141 OCTA_RECOG octarg 0 0 3 ----- 0 8
- Octobrain sees Duke
- 142 OCTA_ATTACK1 octaat1 0 0 3 ----- 0 8
- Octobrain firing at Duke
- 143 OCTA_PAIN octapn -400 0 3 ----- 0 8
- Octobrain screaming in pain
- 144 OCTA_DYING octady -400 -100 3 ----- 0 8
- Octobrain dying
- 145 TURR_ROAM turrrm 0 0 3 ----- 0 +
- 146 TURR_RECOG turrrg 0 0 3 ----- 0 +
- 147 TURR_ATTACK turrat 0 0 3 ----- 0 +
- 148 DUMPSTER_MOVE grind 0 0 0 ----- 0 11.025
- Grinding wheels of dumpster
- 149 SLIM_DYING slidie03 0 0 3 ----- 0 11.025
- Green Slime dying
- 150 BOS3_ROAM b3roam01 0 0 3 ----- 0 11.025
- Boss 3 roaming
- 151 BOS3_RECOG b3pain04 0 0 3 ----- 0 11.025
- Boss 3 sees Duke
- 152 BOS3_ATTACK1 b3atk01 0 0 3 ----- 0 +
- 153 BOS3_PAIN b3rec03g 0 0 3 ----- 0 11.025
- Boss 3 in pain
- 154 BOS1_ATTACK2 rpgfire 0 0 3 ----- 0 +
- 155 COMM_SPIN commsp 0 0 3 ----- 0 11.025
- Fat Commander spinning
- 156 BOS1_WALK thud 0 0 3 ----- 0 multi
- Thump as Boss 1 walks
- 157 DRON_ATTACK2 snakatB 0 0 3 ----- 0 11.025
- Drone attacking
- 158 THUD thud 0 0 0 ----- 0 multi
- THUD!
- 159 OCTA_ATTACK2 octaat2 0 600 3 ----- 0 multi
- Octobrain attacking with teeth
- 160 WIERDSHOT_FLY octaat1 0 0 3 ----- 0 8
- Octobrain firing
- 161 TURR_PAIN turrpn 0 0 3 ----- 0 +
- 162 TURR_DYING turrdy 0 0 3 ----- 0 +
- 163 SLIM_ROAM sliroa02 0 0 3 ----- 0 11.025
- Green Slime roaming
- 164 LADY_SCREAM FSCRM10 -256 0 254 -@--- 0 8
- Woman screaming when hit
- 165 DOOR_OPERATE2 opendoor -256 0 0 ----- 0 11.025
- Swinging door
- 166 DOOR_OPERATE3 edoor10 -256 0 0 ----- 0 11.025
- Sliding door
- 167 DOOR_OPERATE4 edoor11 -256 0 0 ----- 0 11.025
- Sliding door
- 168 BORNTOBEWILDSND 2bwild 0 0 254 ---$- 0 11.025
- Born to be wild music
- 169 SHOTGUN_COCK shotgnck 96 192 3 ----- 0 11.025
- Shot gun being cocked
- 170 GENERIC_AMBIENCE1 grind 0 0 0 ----% 0 11.025
- Grinding Sound
- 171 GENERIC_AMBIENCE2 enghum 0 0 0 ---$- 0 multi
- Engine humming
- 172 GENERIC_AMBIENCE3 lava06 0 0 0 ---$- 0 8
- Lava
- 173 GENERIC_AMBIENCE4 bubblamb -256 0 0 ---$- 0 multi
- Water bubbling
- 174 GENERIC_AMBIENCE5 phonbusy 0 0 0 ----- 0 11.025
- Phone Engaged
- 175 GENERIC_AMBIENCE6 roam22 0 0 0 ---$- 0 multi
- Octobrain like sound
- 176 BOS3_ATTACK2 +
- 177 GENERIC_AMBIENCE17 myself3a 0 0 255 --#-- 0 8
- Duke "Hmmm, don't have time to play with myself"
- 178 GENERIC_AMBIENCE18 monolith 0 0 0 ---$- 0 11.025
- Wierd alien ambience
- 179 GENERIC_AMBIENCE19 hydro50 0 0 0 ---$- 0 11.025
- Water ambience
- 180 GENERIC_AMBIENCE20 con03 0 0 0 --#-- 0 11.025
- Duke "Hmmm, looks like I have the con"
- 181 GENERIC_AMBIENCE21 !prison 0 0 255 --#-- 0 multi
- "Ha Ha Ha, too late Nukem, we're in control now"
- 182 GENERIC_AMBIENCE22 vpiss2 0 0 255 --#-- 0 +
- 183 SECRETLEVELSND secret 0 0 255 ----- 0 11.025
- Secret Level
- 184 GENERIC_AMBIENCE8 amb81b 0 0 0 ---$- 0 8
- Far off alien ambience
- 185 GENERIC_AMBIENCE9 roam98b 0 0 0 ---$- 0 multi
- Muffled voice
- 186 GENERIC_AMBIENCE10 h2orush2 0 0 0 ---$% 0 8
- Water flowing
- 187 GENERIC_AMBIENCE11 projrun 0 0 0 ---$% 0 8
- Movie Projector
- 188 GENERIC_AMBIENCE12 blank 0 0 0 ----- 0 5.988
- A blank .voc file
- 189 GENERIC_AMBIENCE13 pay02 0 0 255 -@#-- 0 8
- Duke "Damn, those alien bastards are going to pay for shooting up my
- ride"
- 190 GENERIC_AMBIENCE14 onlyon03 0 0 255 --#-- 0 8
- Duke "What, there's only one of you?"
- 191 +
- 192 GENERIC_AMBIENCE15 rides09 0 0 255 --#-- 0 8
- Duke "I think I'll climb aboard"
- 193 GENERIC_AMBIENCE16 doomed16 0 0 255 --#-- 0 multi
- Duke "That's one doomed space marine"
- 194 FIRE_CRACKLE fire09 0 0 254 ---$- 0 multi
- Fire crackling
- 195 BONUS_SPEECH1 letsrk03 0 0 255 --#-- 0 8
- Duke "Let's rock"
- 196 BONUS_SPEECH2 ready2a 0 0 255 --#-- 0 8
- Duke "Ready for action"
- 197 BONUS_SPEECH3 ripem08 0 0 255 --#-- 0 8
- Duke "Rip 'em a new one"
- 198 PIG_CAPTURE_DUKE !pig 0 0 255 -@--- 0 multi
- "Got you now, you bastard, and we're gonna fry your arse"
- 199 BONUS_SPEECH4 rockin02 0 0 255 --#-- 0 8
- Duke "Rockin'"
- 200 DUKE_LAND_HURT pain39 0 0 255 --#-- 0 8
- Duke landing from a height and hurting himself
- 201 DUKE_HIT_STRIPPER1 damnit04 0 0 255 -@#-- 0 8
- Duke "Damn it"
- 202 DUKE_TIP1 dance01 0 0 255 --#-- 0 8
- Duke "You wanna dance?"
- 203 DUKE_KILLED2 damnit04 0 0 255 -@#-- 0 8
- Duke "Damn it"
- 204 PRED_ROAM2 roam58 0 0 3 ----- 0 multi
- Trooper roaming
- 205 PIG_ROAM2 roam67 -200 400 3 ----- 0 8
- Pig Cop roaming
- 206 DUKE_GETWEAPON1 cool01 0 0 255 --#-- 0 8
- Duke "Cool"
- 207 DUKE_SEARCH2 whrsit05 0 0 255 --#-- 0 8
- Duke "Whare is it?"
- 208 DUKE_CRACK2 COMEON02 0 0 255 --#-- 0 8
- Duke "Come on"
- 209 DUKE_SEARCH pain87 0 0 2 --#-- 0 8
- Umph, Duke pressing on walls
- 210 DUKE_GET getitm19 -64 64 255 ----- 0 8
- Beep when Duke picks up an item
- 211 DUKE_LONGTERM_PAIN gasps07 -192 0 255 --#-- 0 8
- Duke gasping
- 212 MONITOR_ACTIVE monitor 0 0 0 ----- 0 8
- Monitor beeping when changing camera
- 213 NITEVISION_ONOFF goggle12 0 0 0 ----- 0 multi
- Turn on or turn off night vision googles
- 214 DUKE_HIT_STRIPPER2 damn03 0 0 255 -@#-- 0 8
- Duke "Damn"
- 215 DUKE_CRACK_FIRST knuckle 0 0 3 ----- 0 multi
- Duke cracking his knuckles
- 216 DUKE_USEMEDKIT ahh04 0 0 255 --#-- 0 8
- Ahhh
- 217 DUKE_TAKEPILLS gulp01 0 0 255 --#-- 0 8
- Gulp when Duke uses steroids
- 218 DUKE_PISSRELIEF ahmuch03 0 0 255 --#-- 0 8
- Duke "Ahhh, much better"
- 219 SELECT_WEAPON WPNSEL21 128 128 3 ----- 0 8
- Changing weapon sound
- 220 WATER_GURGLE h2ogrgl2 0 0 1 ---$- 9000 multi
- Water trickling
- 221 DUKE_GETWEAPON4 wansom4a 0 0 255 --#-- 0 8
- Duke "Who wants some?"
- 222 JIBBED_ACTOR1 AMESS06 0 0 255 --#-- 0 8
- Duke "What a mess"
- 223 JIBBED_ACTOR2 BITCHN04 0 0 255 -@#-- 0 8
- Duke "Bitchin'"
- 224 JIBBED_ACTOR3 HOLYCW01 0 0 255 --#-- 0 8
- Duke "Holy Cow"
- 225 JIBBED_ACTOR4 HOLYSH02 0 0 255 -@#-- 0 8
- Duke "Holy Shit"
- 226 JIBBED_ACTOR5 IMGOOD12 0 0 255 -@#-- 0 8
- Duke "Damn I'm good"
- 227 JIBBED_ACTOR6 PIECE02 0 0 255 --#-- 0 8
- Duke "Piece of cake"
- 228 JIBBED_ACTOR7 GOTHRT01 0 0 255 --#-- 0 8
- Duke "Ooow, that's gotta hurt"
- 229 DUKE_GOTHEALTHATLOW needed03 0 0 255 --#-- 0 8
- Duke "Oooh, I needed that"
- 230 BOSSTALKTODUKE !boss 0 0 255 ----- 0 multi
- "Who the hell are you?"
- 231 WAR_AMBIENCE1 WARAMB13 -512 0 255 !---- 0 5.988
- Plane fly past
- 232 WAR_AMBIENCE2 WARAMB21 -512 0 254 !---- 0 5.988
- Plane Crash
- 233 WAR_AMBIENCE3 WARAMB23 -512 0 254 !---- 0 5.988
- Plane fly past
- 234 WAR_AMBIENCE4 WARAMB29 -512 0 254 !---- 0 5.988
- Plane fly and alien scream
- 235 WAR_AMBIENCE5 FORCE01 0 0 0 --#-- 0 11.025
- Duke "Now, this is a force to be reackoned with"
- 236 WAR_AMBIENCE6 QUAKE06 0 0 0 --#-- 0 11.025
- Duke "I ain't afraid of no Quake"
- 237 WAR_AMBIENCE7 TERMIN01 0 0 0 --#-- 0 11.025
- Duke "Hmhm, terminated"
- 238 WAR_AMBIENCE8 BORN01 0 0 254 !--$- 0 11.025
- Duke "Born to be wild"
- 239 WAR_AMBIENCE9 NOBODY01 0 0 0 --#-- 0 11.025
- Duke "Nobody steals our chicks - and lives"
- 240 WAR_AMBIENCE10 CHEW05 0 0 0 -@#-- 0 11.025
- Duke "Its time to kick arse and chew bubble gum, and I'm all out of
- gum"
- 241 ALIEN_TALK1 MUSTDIE 0 0 255 -@#-- 0 11.025
- "Duke Nukem must die"
- 242 ALIEN_TALK2 DEFEATED 0 0 255 -@#-- 0 11.025
- "Earth attack force defeated"
- 243 EXITMENUSOUND item15 0 0 0 ----- 0 8
- Exit menus
- 244 FLY_BY flyby -256 256 3 ----- 0 multi
- Startup sound (at nuke symbol)
- 245 DUKE_SCREAM DSCREM04 0 0 255 ----- 0 8
- Duke scream when he falls from a great height
- 246 SHRINKER_HIT thud 0 0 3 ----- 0 multi
- Shrinker ray hit wall
- 247 RATTY mice3 0 0 0 ----- 0 11.025
- Mice squeeking
- 248 INTO_MENU bulithit 1024 1024 0 ----- 0 5.988
- Enter menus
- 249 BONUSMUSIC bonus 0 0 255 ----% 0 22.050
- Music at end of level screen
- 250 DUKE_BOOBY BOOBY04 0 0 255 --#-- 0 8
- Duke "I should have known that those alien maggots booby trapped the
- sub"
- 251 DUKE_TALKTOBOSSFALL DIESOB03 0 0 255 -@#-- 0 multi
- Duke "Die you son of a bitch"
- 252 DUKE_LOOKINTOMIRROR lookin01 0 0 255 -@#-- 0 8
- Duke "Damn, I'm lookin' good"
- 253 PIG_ROAM3 pigrm -200 400 3 ----- 0 8
- Pig Cop roaming
- 254 KILLME killme -128 0 0 ----- 0 11.025
- Pod-female saying "Kill me"
- 255 DRON_JETSND ENGHUM 1300 1300 0 ----- 0 multi
- Engine humming
- 256 SPACE_DOOR1 hydro22 0 0 0 ----- 8192 11.025
- Space door/elevator open/up
- 257 SPACE_DOOR2 hydro24 0 0 0 ----- 0 11.025
- Space door/elevator close/down
- 258 SPACE_DOOR3 hydro27 0 0 0 ----- 8192 11.025
- Space door/elevator open/up with stop
- 259 SPACE_DOOR4 hydro34 0 0 0 ----- 0 11.025
- Space door open/close
- 260 SPACE_DOOR5 hydro40 0 0 0 ----- 0 11.025
- Pressure release
- 261 ALIEN_ELEVATOR1 hydro43 0 0 0 ----- 0 11.025
- Noisy elevator
- 262 VAULT_DOOR vault04 0 0 0 ----- 0 11.025
- Slow moving door
- 263 JIBBED_ACTOR13 LETGOD01 0 0 255 --#-- 0 11.025
- Duke "Let God sort 'em out"
- 264 DUKE_GETWEAPON6 HAIL01 0 0 255 --#-- 0 11.025
- Duke "Hail to the King baby"
- 265 JIBBED_ACTOR8 BLOWIT01 0 0 255 -@#-- 0 11.025
- Duke "Blow it out your arse"
- 266 JIBBED_ACTOR9 EATSHT01 0 0 255 -@#-- 0 11.025
- Duke "Eat shit and die"
- 267 JIBBED_ACTOR10 FACE01 0 0 255 -@#-- 0 11.025
- Duke "Your face, your arse, what's the difference?"
- 268 JIBBED_ACTOR11 INHELL01 0 0 255 -@#-- 0 11.025
- Duke "See you in hell"
- 269 JIBBED_ACTOR12 SUKIT01 0 0 255 --#-- 0 11.025
- Duke "Suck it down"
- 270 DUKE_KILLED4 dscrem18 0 0 255 --#-- 0 8
- Duke strained scream
- 271 DUKE_KILLED5 pisses01 0 0 255 -@#-- 0 11.025
- Duke "This really pisses me off"
- 272 ALIEN_SWITCH1 aswtch23 0 0 0 ----- 0 11.025
- Splat switch
- 273 DUKE_STEPONFECES happen01 0 0 0 -@#-- 0 11.025
- Duke "Shit happens"
- 274 DUKE_LONGTERM_PAIN2 dscrem15 0 0 255 --#-- 0 8
- Medium length scream
- 275 DUKE_LONGTERM_PAIN3 dscrem16 0 0 255 --#-- 0 11.025
- Short scream
- 276 DUKE_LONGTERM_PAIN4 dscrem17 0 0 255 --#-- 0 11.025
- Even shorter scream
- 277 COMPANB2 CTRLRM25 0 0 0 ---$- 0 11.025
- Oscillating alien sound
- 278 KTIT ktitx 0 0 254 ---$- 0 8
- Duke "This is KTIT, K tit. Bringing you the breast, er, the best
- tunes in town"
- 279 HELICOP_IDLE hlidle03 0 0 255 ---$% 0 5.988
- Helicopter blades spinning
- 280 STEPNIT LIZSHIT3 0 0 254 -@#-- 0 11.025
- Splat as Duke steps in it
- 281 SPACE_AMBIENCE1 monolith 0 0 0 !---- 0 11.025
- Wierd alien ambience
- 282 SPACE_AMBIENCE2 hydro50 0 0 0 !---- 0 11.025
- Grinding moving sound
- 283 SLIM_HATCH slhtch01 0 0 3 ----- 0 11.025
- Green slime hatching
- 284 RIPHEADNECK rip01 0 0 254 -@#-- 0 11.025
- Duke "I'll rip your head off and shit down your neck"
- 285 FOUNDJONES jones04 0 0 0 --#-- 0 11.025
- Duke "We meet again, Dr Jones"
- 286 ALIEN_DOOR1 adoor1 0 0 0 ----- 0 11.025
- Very noisy door
- 287 ALIEN_DOOR2 adoor2 0 0 0 ----- 0 11.025
- Splatty door
- 288 ENDSEQVOL3SND4 GRABBAG 0 0 254 ----% 0 11.025
- Duke Nukem Title music
- 289 ENDSEQVOL3SND5 name01 0 0 250 ----- 0 8
- Duke "My name's Duke Nukem"
- 290 ENDSEQVOL3SND6 r&r01 0 0 251 ----- 0 8
- Duke "After a few days of R & R, I'll be ready for more action"
- 291 ENDSEQVOL3SND7 lani05 0 0 252 ----- 0 8
- Lani "Ohh, come back to bed Duke"
- 292 ENDSEQVOL3SND8 lani08 0 0 253 ----- 0 8
- Lani "I'm ready for some action now"
- 293 ENDSEQVOL3SND9 laniduk2 0 0 254 ----- 0 8
- Lani & Duke make love
- 294 WHIPYOURASS WHIPYU01 0 0 255 --#-- 0 8
- Duke "It's down to you and me, you one eyed freak"
- 295 ENDSEQVOL2SND1 gunhit2 0 0 249 ----- 0 22.050
- Gun hit
- 296 ENDSEQVOL2SND2 headrip3 0 0 250 ----- 0 11.025
- 16bit
- Head ripped off
- 297 ENDSEQVOL2SND3 buckle 0 0 251 ----- 0 22.050
- Unbuckle jeans
- 298 ENDSEQVOL2SND4 jetp2 0 0 252 ----- 0 11.050
- Throw off jetpack
- 299 ENDSEQVOL2SND5 zipper2 0 0 253 ----- 0 11.050
- Undo zipper
- 300 ENDSEQVOL2SND6 news 0 0 254 ----- 0 11.050
- Open newspaper
- 301 ENDSEQVOL2SND7 whistle 0 0 255 ----- 0 11.050
- 16bit
- Whistle Duke Nukem theme
- 302 GENERIC_AMBIENCE23 2ride06 0 0 255 --#-- 0 8
- Freeze ray hit somebody
- 303 SOMETHINGFROZE freeze 0 0 3 ----- 0 22.050
- Duke "Damn, that's the second time those alien bastards shot up my
- ride"
- 304 DUKE_LONGTERM_PAIN5 pain54 0 0 255 --#-- 0 8
- Uww
- 305 DUKE_LONGTERM_PAIN6 pain75 0 0 255 --#-- 0 8
- Ugh
- 306 DUKE_LONGTERM_PAIN7 pain93 0 0 255 --#-- 0 8
- Oww
- 307 DUKE_LONGTERM_PAIN8 pain68 0 0 255 --#-- 0 8
- Uuughh
- 308 WIND_REPEAT wind54 0 0 0 ---$% 0 multi
- Repeating gust of wind
-
-
- 11.5 Dimensions
-
-
- Here are some facts on the dimensions of Dukes world. Keep in
- mind, though, that you'll want to scale down real-world places to
- make them faster and better-looking in Duke.
-
- 11.5.1 Units
-
- All (x,y,z) coordinates are in units; irritatingly, it seems that
- the (x,y) units are different to the (z) units.
- At a rough estimate, I would say that 16 (z) units = 1 (x,y)
- unit.
-
- 2 (x,y) units = 1 pixel (normal texture)
- 8 (x,y) units = 1 pixel (shrunk using [E])
- 128 (z) units = 1 pixel (normal texture)
-
- Floors are raised by 1024 units every time [PgUp] or [PgDn] is
- pressed.
-
- Viewing Duke via [F7] in a narrow corridor, I would estimate 1024
- units to be about 2.6m in the real world (meaning 1m is roughly
- 400 units).
- If I remember the weirdo US units correctly, 1 foot would be
- about 128 units.
-
- 11.5.2 The map
-
- Maximum grid width is 1024 units.
-
- In the following paragraphs, height values are shown as z-
- coordinate difference, with the number of [PgUp]-keypresses in
- square brackets behind it:
-
- 11.5.2.1 Walking about
-
- 3072 [3] Max. height difference for stairs.
-
- 6144 [6] Min. sector height to enter while ducked.
-
- 10240 [10] Min. sector height to enter (will duck
- automatically for 10).
-
- 16384 [16] Height of standard sector created.
-
- 20480 [20] Max. jumpable height.
-
- 11.5.2.2 Weapons
-
- Numbers in brackets mean that only some of the shots will make
- it.
-
- 3072 [4096] (3 [4])
- Max. height of floor to shoot over while ducked.
-
- 4096 (4) Min. height to place tripbomb on when ducked.
-
- 5192 [4096] (5 [4])
- Max. height of ceiling to shoot under while
- ducked.
-
- 6144 (6) Max. height of ceiling to shoot RPG under while
- ducked.
-
- 8192 [9216] (8 [9])
- Max. height of floor to shoot over while standing.
-
- 10240 [9216] (10 [9])
- Max. height of ceiling to shoot under while
- standing.
-
- 1024 (10) Min. height to place tripbomb on when standing.
-
- 11264 (11) Max. height of ceiling to shoot RPG under while
- standing.
-
-
-
-
-
-
-
- Chapter 12
-
- Miscellaneous
-
-
- 12.1 MAP design contest
-
-
- Joseph G. Geisler III is holding a MAP design contest - he's
- setting up an HTML page (adress so far unknown to me) with MAP
- ratings (good idea, _I_ wanted to do that! :). So send your maps
- to him at dubljay@baltimore.net, you might even win something
- (keyrings, T-shirts).
-
- His announcement was dated 6th Jun 1996, so don't be surprised if
- he got swamped and stopped his offer :)
-
-
- 12.2 PC Gaming's offer
-
-
- PC Gaming is another page that makes your maps accessible to the
- world. Submit the levels in .ZIP form and include a screenshot as
- well.
-
- http://www.compusmart.ab.ca/mknox/pcgaming.htm
-
-
- 12.3 Conclusion
-
-
- Phew! Well, that is all I have! I hope this FAQ proves to provide
- a good resource for DN3D Editing information. If you have any
- suggestions, questions, additions, or comments for the FAQ, send
- me e-mail at "sz0759@rzmail.uni-erlangen.de".
-
- Thanks for reading the FAQ! -Klaus Breuer
-
- SUPPORT YOUR SHAREWARE COMPANIES! REGISTER YOUR SHAREWARE!
-
-
- 12.4 *Revision history*
-
-
- v0.1 First release of the DN3D EDITING FAQ as an RFC.
- (16. May 1996)
-
- v0.2 RFC II, added how-tos and changed the format a
- bit. (20. May 1996)
-
- v0.3 RFC III, added more how-tos, extended reference
- list. Released to the mailing list only. (24. May
- 1996)
-
- v0.4 First non-RFC release, added lots of info,
- including a beginners tutorial and BUILD
- reference. Plenty of typos fixed. (25. May 1996)
-
- v1.0 First 'real' release of the FAQ. Lots more info,
- including thoughts on level design and more how-
- tos. Plenty of errors removed, first version of
- Museum included.
-
- v1.1 Even more info, improved museum, sound list added.
- Better ASCII logo and (again?) some bugs stomped.
- (27. June 1996)
-
- v1.2 More how-tos, typos fixes. Museum not changed.
- (5. July 1996)
-
- --- cut here for the museum ---
-
- begin 644 museum.zip
- M4$L#!!0````(`&1FY2!\>KC0A!<``(8\```*````3553155-+E!23HU;[Y/;
- MMM'^SAG^#VB_W%U&IR9VG+3W):]=I_&U<9S&R60ZG4X'(E<B>B3``N#)\E__
- MXMD%*$IWY[3I9&(1/Q:+W6=WGX75)_[WW61:4M'5U2<&_=R1>CL%FH:Z^N3`
- M]+_[S]?/?F/4K][$2%9M#LMA?^OU%-0K3Q-Y=1D^?O[UBS_]G_\X:-.O)VNN
- MR??:[LBN6[K"!L>Y7RCUV:V-WK53$XVSGQT_/5/JGV_</AU0)?E5[$Q0.QSY
- M7R<2/EMCC9^GZ+S1_6(^?\,B/]&6/-EF.?%Y^OW;M*\^_?G+]#-K3!NKWNB^
- M/]WK2][KM1NH5=ZY[>EN7_)N[T:R_/%\*K;\D5H*43]8%OO^:FSK]F'QZ04T
- MD(38Z\/R9WQA07[LG"7URKG8G4KR`I)\]CYJXQL=Z/QCDN2S5]ZTNP=?DAR?
- M_5D/Y'4X__0"DWJ=I-_TI/9)+'4Y!?*J<;B__FHQX2O<"*NQZ4P2\2?GAM/U
- MOA)-TN"4['?^&0?XCK0_D^,K%OZM\=[Y\R\LO+/W='!>;:B/YP->9+$&$>O\
- M<Y%ZY_4X]O1@_:_3]U]U3$=NO1L?"/9'W(AS9R;XU?I/N(K>M,;N5.L>BOW%
- MY]"L;M7CI_H"BOK>[+JHPM[$YNRJTX!GC]Q,=%/3C;I=WHJ,AO[>CWIO61[8
- M_XF.OQ;(>)T$#2=3O\:-O=^G69AXV:5_4WO%)SH=*&.SITP0*919#X^?!^,(
- MW[O]_S`2XO^9;"1_K3^8H+R+.GYRQI=\X-Y$'C:/AYX>'0\K><^:OM9--/<Z
- M4JN::=PX[=M'9\!P?BKK;NALT-=\NM?OWKV]CH>11&./K"-`]LXV=.UL?WAT
- M!*]$6VKB4^=]QAKZSKO])Y3R3)1R?L@G1T,E;YPW'YV-NN\/*D"?CXS_FG=_
- M%SLXR1/G?,[G?!^U5S][NGMJU^=\V+^XR5_O]>'I46P0DX_:V.5N?\S.O#6>
- MKQWQ9_'Y3_ES&'5#@.LE/K%'XFO/;G?VE0<(_DY]P.(\[.RH:0CD_YEZ&IV/
- MIT[&/LT;4+M[L#T/X`U>&J_NR3Y86QR&(TU:_U['$]TP(U_T[Z[N'AG@M,
- M-OT4).#BGT?B,/[Y&4$W_5\G,?Q!A2X=16F+Z#?M.@G'"-`1J,I9QHK_.WIM
- M`#!U]?;ECVIK>E(&.[;4JKV)'6/,+_;==FL:HWOU>DJ"_I#^-:AO6\-^])>7
- M?U]#A!]<1/#743*`08\0R+JH/+$M#J1MA!`;4F.O#VF+:V7B15"C]K&N;F^5
- MV[)4:<F5:FEP-B0!>1>`)3YU;G\=75C+H4O*A)VVVJNM=T,ZA36AX]5O5:?O
- MR5Y$=:"HQBFJ?Z>%_HV5ZLK8K9,9><]T]"2=B6OUAIH[45`2M*&T/-:@M)0*
- MG6ZIK:NTX'J=Q+A-H@6'<19GL].P(3^+NR4=)T]!I2$'-ZDFC4KRM?@XJ,'Y
- M)`?I8/K#6B[R4\G4?-%RG5#R4J4^B9].[2:Y^3L:8SJ^;0]JWQ&$FSS?]%%M
- M:<]_9*'(,!;,>VK84LS)FG)>?O`E0[MA6<\SNKIZ&<(TX+[282_NZ7@7;&QE
- M.6./UPRM#.R^&[Z3F#8(.$<:Y$ES-(Z=F/%1&RH)2RO$AKO%@%.3D$UV>B!U
- M^?J7OWW[_+6ZAI6__>7]M[^\7:?_O&)%16BG=^Z.M7/<B_)6>J>-7<GFT0QT
- MONLB=4^;UM6K7VZ_?PV5P5F>OU[/UQ;I0U0(&8H^C#UP4.WA+Z2;KEB*,F&E
- M&+));$Y&UE7G]OA]KX/:3*:'=</9+O(:<"&U="!V">?91G%5YPEV7?UU"E'M
- MG(*/\05D?."EV)'+;02^)>@J$+M@DJ2N]L[?!?YU(5OK+&53/DO=\<^O;(BL
- M"^0E+&.V$+&$O>G[)!`D,!;.:6,^4UU17@MR+FQ8O0S8''J#T7G<CQ^Q^GPP
- M^#5N=E$O9!D?JR,*M`SXK8,GL[SIX-,&PISX3UKB8:TA\_$'3&WQZ496P&J-
- ML\%`J>ESH'OR.AV9FNA\.L*^,TU75X`M!I$-06.FAT=$ET[6BBR#:=N>5JKQ
- ME`&2][GNS1U4M47J<81E7!!F3;8E'V#4V5#"-"+J96U-22CM:<:X5OL[\B>;
- M#%/3):$BLNOGK]5BHX=555W=>F\DW>H/JP4:;UV2)*V&A"&Z#+*[7H>@G+@M
- MEJBK2PHC(?#T!\"1J,%9NEJ)-;IY+!3M1H8Y.=C=X4;=UM5_8.2C]FD)_2'C
- M$(_/"O`<EVTL-Y"/<E8#RH6.^8<"+7(';/:LH;3\YJ""&<8DKM<F"$A076U[
- MYWS9,D\;M:5>#9JA9!IG^V`)WN$@8YEQW!@@W$P;4I?:.D9LD5N"M>9=<7.\
- MX=5Y$-V:>U*MV3(*P%\/`?HB`4&$[)M2\W\FY448DD1I%X^S33$Z6YPAR6-;
- M[5MU@>D]W:?#R(B+LS4V9K=[L(1NXE2NE3X(\B5!2;<XM)[3H#!Z$VF%F1)H
- M,^I`$;(IMI=UUV<;?^?A/*=B7P1J/$69>Y$_KN1&S;$^0C6N-CX7.4"FZ/)^
- M7YQOL^DG*KMT23`V.;W0\ZA[.(S8;-1W=-SG9.4_JDMV4A3K_,O5*CN827\X
- M*$"Q9F>=YQ_SN:54?YT&!D#WN!4QR+(RR\WS;O.BE]FF@,Z]WNVHA;[3V&N1
- MJF#G&1MRCIK01>P\I>6UWU':ED>NU1L&-PZYBM-%&F[$3P0"EN9A+,,5A$0A
- MN%8_.]4ZOBQ)T&35[`8`SI#S(2E]>K*[V%WO3:"U>F\X?!QG82>[ZQ%]$(3K
- M*O]^`M'FPP(<_D+4JRT.E78)G7-1,@46_":39F=\4%%-B25I=9L69$3GV?2A
- M,QN3MKLW.JNLR]-7@#L%+.2,4=S<9JD%R2[3,3\14YAX%'P2#]"^Z?+<BVQ?
- M<J6/D55U=2M@%]R4MLYBK4Z36?AP3R,FY@BF-M/'CQ2428*SC7L&^E+"(LF6
- M'<_YK[KZ`5D2Y^$"=Z%\O2F>%<@;RD>5(T(M=77T.,';CKC>6ZM;^%2K_KG^
- M%PO1FYV<*2-/F%.,$&ED.PM9O!,&KJY>RFW#;4H`33-"`9<-CTS[(2W3Z=`3
- M(4C*SZNZ0KI>\`3*0R*I-F1)\ZVV2F_<?5;.NZUJW.0#K;(F!MT2X@2.S:`H
- MN1?6@;5W#DGCWJ:C,D`@<70!@+\G/3I[+)F\-KV45,&5:+6TGVVO8]DBJ^&4
- M;N2JX8(]/"UO731-R?#W+@G$X];JG2UI!M=G`8F`L]H?5I*+2?R"L3'7DS93
- M+R%2MX"'DKCD19&=U-4,#AWU7"=P_G!3PE+>A5>&!6VWYL/1UW"[=05'FR-H
- M#C&2&LC\'<_NM-V%8QI9:L6Z:HA5R-IYE599RI=D=G=I/X3TG(M0,Z4M#BHT
- M')%R^M`X;\FCA.3['=/>@@H;1,5.^Z&GP$E\@T(JG35'D&X*N/8+*9EP\_/=
- MMGK0P.N\DSWQ)7:?EM*^?,9\M_\+7RR+\S<!;*$9EGX`>"!O"T(4N]Q@960D
- MG)QM#H*9.3$"Z0/TPY\G5`%^O:ARTT)N'TJ(9"KQ1CX_05L?0Y#\#$*%3\&E
- M5H%%M_D/-6+II;[A71]CNF6]]Q(.OV6H!*YH20OR/6J#U&X+(9.L"-W;F!&A
- MKI"`9>M8JY_]0?G),@8<JP@!]0O>^2?<#FK>BR1O9.A^]X-<^T%\#A688833
- M18V>\@&67#P09%LLD$7BS-X-2`3\H"W9B)RBT*$[S%NK/[MAQ,"EF?/V`JD4
- M3Q#S.%V06'R0<PZ+P^<BECV:8X^G7B.;N5`;$_F(LT7#WX/:>Y?]JC`3C,G.
- MYI.(F'+<DPY#L7]_IP:X#6XDUQ)@AE@#^QR`%\GGP/-7<E''3)GQ:8K7;GO-
- MC*0*!]MZ-]#-/$?2*)3SC$@2UQ@BM&J(>4[5&J3)35K+<NDF)C#S!WO']1R*
- MZ6LNH+GZG=J60!*41?-I'^N:S-$YUQ3SK20I2I"!P?"U%\,?TQ'Y\NMJ</<2
- M"1P7=XWQS=1K=OWC/C.XE`5@'WOG8W?`AM;%C+U`_^AUZ-*VX20P:=LBM\+I
- MT-%`!B.+K=5[.I:G_!$5WF(C%)QU5>J0V&DYL/-F9ZSNPS?L22UM]=27L*6"
- M^4B,8BW@4XRYS(!@X8HC*FK9Z!PJE,R3/-9[.@45$P/UVTQM,HG!I8F*DT4]
- ME^LPZTR@G%PA+36VI#R/MJ]DB_*#&MP],?[-FIAI2J%+V.-&=^1&3BY,78;H
- MS8A(TNOF3M"#@*972C?>A9`C(8IX\:NZVM#."#(Y,7]>B;DO,8`]9]T(B+B6
- M!7HR%W=>.,YG04+.)`8'Z58XUE*H"M=4#I'+#TYJV1\$$I`*Q,(Y,"^UUX?S
- M(NQD/\TQ&V[++`'3_OU!319,M`G1-,P\(*O.>Z;IF\WL^*)TY(VM`W[=6=0*
- M6\%:I'863GSLK&O/?,9\PP\;D%+1%^ZAA.6X%)R37;Z3:\Q2.[+DT3%8J_?L
- M`UG[\*L6=3!S.<6^U9:(L3HMGZ/0/?59GD7'\XBK_YE&N8RC+3`])-GHB6@H
- M=2C'!!XCPS,.7N:TG(G*`JCL%4SN;R>;%^!2P+/[A+T9P!,+`XN"QOCKS;1!
- M"G(\N$C_2%_V6"7$I6ORS2]&KE2?&60^*.SDE6[K2H(&IPTE]']^WMME:,5]
- MGP`I<ZV='D>R*&Z$O4;S1D"8ERVE*)"%<4M0OW'>HY1G(Y-\+YV6>>I%+C!K
- MZ+JN6'TP644Z'%:YO'R\TUQ7G#M+Z2OTFLGRLUKZQ?"5BI.WA2"`[2"VUU6O
- MA_%!=<Y&_186/Y(;>V("0P5`9UZSRR2]0R;G::"P4KIMA2_D,76U\VD0*K.\
- M([?3<K3*RTANI8/:$U3VO9,<#7Q/7<&:\+O$G:.G_69/O:Y>`0(+8[?(#%=G
- MF87G&@$S>T3RT1DK5$O.>'EMAG?&B.V6$[3,715NG`=VKB]U1FL"C`4AM2=M
- MP8(B$2Y(`Q2:??"E!X7\FCO])[;YQ$N`DO'PGW..M7</>:>0>=)#1C/<+"+&
- M,*;/X)4T2.,UK!`<DT;/NJS1'\2DL/.=Z<&4<"L"N?0-2OV>9N5=MH!<[Z9P
- MQ=53HZ>`,*8XL4)3#*Z.NQ3CVVCOJ>>*7%0D0"*\REZ0'M2&Y!&MT+X2J\"X
- M80N&5\`FE[BLK\VA:'8UX[>G=-H!U4HGX)!+XD+[<4!1,/*ZRE:^YXE'@F?O
- MTGQU"4VIX0`/O<K'YR(R)T5D?(M&A720F-@^B,T@J49/7O6NN8,70!D6:E0[
- MB@N$E1Y2+H[`72-L\LE.7WP(M[_B!JL$EK3NSKMI!$=V;!18.,P>83J[V]SJ
- M`-;4U8+$`4*9%DD$^BR=1),M&T86IF4:.T<R\6P@;#CB*TO'_B4R?_(Q"D`K
- M]TD=TI."VX&]7E)"S0VWPTU>[5//5<0AN#)E<5>9>)0EN0`-:1=8/`K7P1HW
- MA?2G2R%!ZDJWZ'MKJ]Z/<^Y6,KH>).-(2?IUKOF1N\R%D&B&MS##U$=M219G
- M$I0.2V:@-*/X;$VGD3@6;3WYP@;Q"%3H2L6GKR-G3&RE6@V$1R"F48*.J,>0
- M3=S&15N`'328GFQ<H7;?7@MKIN2J>(M9MM]ZTU-7/]%`W``_ZB3S`_0!WH24
- M0WW[Q=LOOLG4N6[N_B"Y*=@WR5IYGO#\@@@YYSMO9YP%8V$:0V>VXA$L8MJ^
- M<#I@UR8$CN5+!68N$"S#$?16*`KF0W_Z6=*"&9$;R`GVG+#3AR.&P3Z$WQD]
- M!>'I.,,.C'1S[+MEY-F'4FQ(5%\2@$=.>I66`!573$N=6Y88>PXZ;!GE;H0D
- M3-M39A[G,__6TZJZNMU9Y_-;`:9]QYXT<^QN('3)N2G+E[CB\G/^+9,"*'DA
- MV>D3#<E<\(1AWQUF<1YYMU57KR:Y/RM==3IU!!/F^B1-NA&%BV[X7.R$PCOF
- M:J=5&N%XOCB.XCEOD+R"E2?V^_PJ"_?XDS&QBG-0`P1@H7OM#5LD=SO/9F>@
- M>_C(K*Y^Y#/D8TK6Q()%)^44/UW!%#6-S!J'B`[?-!99'WF6EB5]`DXX=407
- M[#ITNKCF2GFZ1R&%!*^N.@.^HN1ON5\#29@%OQPG/[J`-./FJM"3*]6`FY[-
- MGXOPX'($?^)MG$C*M\V"@E(^-U'.,*;HKK$^H&V+O./9BZ_XX0:*%X.Z;NZ)
- M,P=%`[>,=FF[S-\("W]L1^::`@"ZMYGK*$W+`"H"H7W1SQ&N;+%`/">-?^MI
- MWV,&E"%Q]&XDCTQR3D:+,">22(PYW_33+P1E6Z33CQ@#-R<YIG`+/I=;,S(*
- MHAQ/PBQV=K89V9!CXHD&"AJ^K?].IKF#WEHG+!'7'3OGVBSRPW>*=?7>@=-#
- M)$2K#*^H%AZ6FVGR@HA%YLHJ^]43CQIQ<,TP@N=HA:DX^KX;1Q=,QHKN@?Y*
- M:'U/5/+6BR`M<J9J"@,!&$;DDY1S$<IGQ2%.,5$F+LEVS%GPG*ZOU(:V@KU'
- M\!-^G?%U._7Y-1GO4]Y620N,R1&K0SRHZ+/F!RGH\HK\,L]+?Z&N.#?MRH,H
- M;M+S,S#=JV[R_I!ILZ=>@=;5*^KR<S=UJG0Q'_XO#FQNFT3M[Z23NE;Y0>.B
- MV:,1'(ZK9_-?Y@QAB3XHN8TPZ'/A?LL/YECB-X7)D1[09MKA205XLK!2MQ=#
- M>9H2#4H;<0`K[_+NB,:ZZB8K;RIPE'@EJ&"LS8::SH._?E$8<,X,B^>NT0ZM
- MJR0Y'D:46I!GQ;UI6,GB%V%J&B0*_$0AJBF(*A@(ZHK137CE<@EGCVQSPX^#
- MM_QXTA'(N=F)7D_Y<;27DH2@J_]`'\9BSXSUJ](AZL7;%\'UV'?*#9TG7OER
- M5-,AS@J86ZG+@6OUJ^3@<6]"S/B+S#[FAN#<4](11<WOU&NNWO;.>W8RMM_K
- M\CQL(R:I/8"CS8\.DIP_HEC+5![;^K$H6Q35=VDNIY6(,X,&E]AH:YW%A=QK
- MTR/57O1:6^/8M4%*[VPH_;,-6(E"UPM5F79$NHM61&G1A21UN0P\4KDWP7#E
- M(\&VU"CEU99H@1F+=%86XA>[=3Y.5@MT/!!Z;B0R)P3N?;M-IP53-;])??0-
- M]H+3G.M&-\7YM<;R`N<W0_,"*Q2>GABK5*\W!!NZ_/UK9A#2H>E#)&_`!QF/
- MBOGW0A3F7$-N,)WSQ/W7ZGVD<33G#T8E=@)3P6`P9<<O>5%G?^=:-;B63I_*
- M&:OX$6=^`GQ\/1;N#KG$0H^)F[S?*&G!U!6_-)6,?34GOVJ'EQ=9D8^_5Y]M
- M!5V;)35\5%?I-8'N.9269GED7%<(P7U>-9-+`/<@O64^[-P&U59=9M._FI_!
- MV`<[WF1VTX.O:?&&6-O(Z!'`CR&MZLP@K1`KL6&U>-?`&79YE,M?<Z1XZD4^
- MJR#D,^1466T$G$N,TM(,MB29EKP:[(4G+&\>\4I'H338+A_JC`O7SEF3U"UK
- M]8_R_AB`?."B:5<@F>O]%4,\?=`(P.4,#__*`+B,C#2@9&"8<"'5`%W,UDCP
- ME>,APH!D9;J!;S`>UV+L.>F+'>0*T=((&)3D#2C9PS<*F%57<K*5<(#;R?XN
- MF]NC?WOA),LKW?JYZF%SE9=*"V8GGBQ2K/GAWWW`"]]"">K\.YS?:[[(\I)B
- MZSALL9<\?/N=R61NNLQ5>H[L&3%YW<M8WJ;557[6=[%2F[B_4NX>?Y-Q#,<4
- M6:=SG>"39(6@V3$&%:>PG`5B\]@U9YMQ;@2PBI^MOW[Q6ND>[],%))_XFQ[2
- M;<D$WZS$(*G&4DGA*K_]HOR*=;8']!$>1.SR%#H76<WD,UG[WPE)*G<?\7BD
- MW-2C?]&$KXOZ?J7^SC_#(Z8H=-](GJO$`;0G2[^@C)#7HZ\!*MCL.B"X:W1O
- M/E*K2/O8R3:;8Z=[-J*C`&QR4J.<61;VGR7*29)D&&6YX].:O18N&;&U'/;1
- MOS?S)KO&*C<VLL?TE,Y(BP8?LLZ6-"OC#H_XTZ^WG&%,?:M&EW,5/+`O=B/$
- M*871278T:"FX_T;$=-<@"7#YBS$MA<:;D3-]?A8%:,\.TG%FSG70Z*DW::KV
- M8F%_-MJMTJ+\-W@O&W2)PDJ]N'G^N1ZD37M55_\/4$L#!!0````(``L*VB`6
- ML$T`^48``#H(`0`*````3553155-+DU!4(R=!WP511['I[PD2PCPZ*$:$)6F
- M!D1%18F*V`!!J6)!L6`Y#Y4[]42)'0L*=KO=<GH6;"!B:(*""F(!:Q0+J"@H
- M:A#DW6]V9G;_LV\V/N[S+KE\_WUF9V=GYNV5,,9VR.5RHSA^J<OE?N>2+<6O
- M_1FKS>74A[.`C6'ZWRI&_^5R_5D9M/[*L2QC$G^Q<AOQ^9W('0X;K!SV*A@3
- M(9]85X2?D[AK[RA6#'O;0CEM;V(=,W+4WI@\>Y6;??9.*%#N-)8IR.\_"LSC
- M7P7*752@WTL*S.-J)>?8J]SLLS>CP/CN*-#O`WE^>WC]/E%@^SZCZM)3^]5\
- M8MWO'KF95FXJ/HC0RFVDX4'N95:DY:Y3<K$=\W.]E9MC[=U>OUR-E7NX?KF%
- M5N[9^N666+DY]<LMLW)+ZI=;;N7>KU_N?2M76[_<*BOW8_URGUJYNOKE:JU<
- M1O\E3>YK*Y>M7VZME6M?O]R/!5X?F]2XMFD;Z7^5FWW]C_%D?_;;*^:(;Q+M
- MSWY[I4KN*<AMRN7T]<:V,I8_GC96<A.MG(CZ>U*N68'V6A4HU[9`OQT+M-=9
- MR3U.Y89NMG*,R.U8H%QW6^=-NO_1^*C<+@7*]2[0[QX%RNUMZU)GY=ZI\\GM
- M5Z#<`3:/.CW^;33]+RDWL$"YPVP>=?7G,:1`N2-Y(\;.A!QRJ6)5;"3Z?2D[
- M$3\9*]4R4Y3<\3;?"L8.P%__$TXU/NV9O#[&D^OH$/SE14.2<J<6:.\,):?F
- M+\MS.3I_N4Q:.56O7.Z?2FX`?I]DQS7__>C<`N7.XT%!]ZTI!=J[3,DML>TA
- MV'#)RA3'SSHJ=Y62>P%R9<IK*%=LY+92N6MM^[:/Y(1/[@8E]W`\/R!RSKA[
- MDVV/V%Y@Y'ZG]FY3<N_'UQ&1<_*]2\FI>VJ+R%ZIS]Y]F,VRK70<=^X+D=R#
- MRIZ22]P_+DOX?927>.\SER7R?5K9N]_*549R:Y#42F+O.24W)Y9[78/ODW(O
- M.O9:I-J;Y<A5I,J]YLAE4N7F%9C'(B5WLY9K@?^<8.3&)^K\INKW!=A;8>U5
- M*'LLLI=LMP]XD;;71__%\J'<RO!0[F,E=WLL-]O0I-P7UF\?UV]2;@UOKOU6
- MN'Z3\?U>8!Y_.O6KC.22==E68/V*Q0@\O^E^KR*VX]J"#"/_<KFQ(J.?\\;I
- MO]@\QT7CLPCECB]0;GR!<J<6*'>&*-+C6IGF=OZ0G$=,%)F"Y":)]/%@"Y$[
- M3YAQ*!O;HS^MW(4).66GG-BU<E/$=@7UEWM%J;9'Y$K)3ROWN"C)DW/]M@GE
- MGA'F^B7QE7K\SK1R?^/W9>6W`+FYHK@@N86BLJ#Q>9.26P6YGOHOXU/&ERXR
- MJ^]'6?6_J]@@TZ\&1=>OENLCRYSXU'RHQ..W2IJZW&_GB5I.]8.24*9U*#>@
- M'KD&1.X02>=A5=%SP'9A?%V[6KE!,DC4S_^\,#SAU\J-#^UMZ&7MC;9^)[ER
- MZR-;6NZ8`N7&%2AW4H%R$PJ4.[-`N8DRV9_]]9M4H-SYUJ\:Q$F[]<!P4D3\
- M3I9F@#7VADLMEYR_5$MHG:_'\0#_N8*'_67^%3SL5_.MW!7*7@%R5Q<H-ZU`
- MN1D%RMU2H-P=!<K=4Z#<`P76[U%UG4]VQR'[LXBTQ_/*KY(K=^74]=N0R+U4
- MH-QL)9>RKM*0S!/GRAT2ZUS^=8LURIZ2B>22_;1%*/>=&C<*D/M9QL]15"XY
- MW_U5V7OJ[Z^/+07*R4QA>91D"K/71-E3<Z'V]=MK7J"]=LK>UY#[6K?;;*Z?
- MDV=']X]6H=QVF4-U__L;>Q,RQ07Y/2M3^C=R#4*Y\PNT=[&26_7W<I<7*'>-
- MJDL!<M>K/#9`;H.N7YV1JXODVH9RMQ=H[VXEAZ:S<LUE<GVM72AW?Z9,/P_^
- MC;VG,MF"VFU.QESGJ?U*R]44*+<P$S__UB>WI$"Y907*+2]0[OT"Y585*/=I
- M@7*U&3,.,5=N1D+NZP+EUA8H]V.!<AL*E-M4H%Q=@7);U75D^JD:>H8S?_V*
- MBS*ZW]>Y\Z&D7&F!<HV57)V6Z\*Z8!ZIY'[X0,^S?_C`CJ?-E-RR7+3>!'M_
- M&'L!M=>J0+FV1>;Y;6O.K(?YX^M8H+W.!=K;L4![W8N&L4+6[R\L"J)UJ?KD
- M+E-^^^;"=5'UEXVF?=4\@LI=5839PH_VN4<P,C]PUN%N5/;*8.OR^NW=6E2B
- MY?[&[STJCP+D'BDJ2XLO0^6>4_%YY&!O$Y5[L2C+6/;O_2Y2]CQR+T9USH9R
- M;Z;()>V]7=0BFD_V8<ST^_SGRR^+XOF?FG>>([3<.<*5^Z9`N74%RJTO4&YC
- M$1.0&J1&C3%B=$1J`RL1\CFJ#483?KG+MZG=K%&$3XYYE>89-I+P\V,^6?,B
- M-H+PJ3&OT;R8#2>\.N;JWS8UBS_*;[^?Y@$[DO#I,;]<\P9LF%^_1O-2-M2?
- MWS;-&[(C")_D\H6X.-@0?_T4OY2Q1FQPNOT!C#5F@_SY*X[&;L(.]]=/<=0P
- MRPY+YVB#INS0]/CVQ@C.#B%\HLO1!YJS@_WQUVC>@@WTQU^M>4MVD#^^?IJW
- M8@/\\?VI^V!K=J#?_QS-R]D!?GZQYFW8_G[[_31ORZK\[2OTIQWK[[<O]#70
- MGNWG[U]"7P,=V+Z$W^SR-W`G8_W\]5.\6/U^-.'7D>L#GX5J0HQ#.SF/OKD&
- M.M7'T?\Z.YS$KS[X7]L[G+1?Z%_-#B@GUY\9`W:HSS[JMV-]\>&S4YI^/\V[
- MINE/UKQ;&I^C>?<TOE7S'FF\G_[9,ZT^U?KGSFGZ-?KG+JGY\_#GKJGU`T<-
- M*NO31PUZI;8?#\>/WO5QC#^[U6=_@+I+UL/1_W:OCZ/_[E%??OCL66_]..N;
- MIG^YYGNE]<]^FN^=ZE_S?5+]ZQC[I=5OLN;[IO8?S?>K[_H`WRZ-;\.GK5J#
- M_`??B^F9)>Z&9/Q@X4/V_NS,=-Y*[8J?X>?*?BMU_N^LD%\?_KUQPS5%AJL3
- M$RU4%S@^/+RS,>2MW.L'D\*#V&!S8DS]R\9<*8$/9./#%;@\?;6#`_L'LW^R
- M$I^^XNW5[O]]N,=Z])7]+HP=RFX+1?/T57S@A[&KPIV(/'V5'^P?R"X,%Q[R
- M]-5"[SJLT)OVT4MT(@B[K>+EF@]F)X7Y:;Y_7OY#4$&E\A]COX+&!WX$.RX4
- M79^,;RT^L#\TX3]K_:_3GV%L9'@B2?/!;OYXJ#B2C2`\T3[@A^.9TZL?Z/R&
- M8\^B*X0U[QADY[GU&0$/<?L/-ATLMC^2#7/Z1S81WR@VU-&/N,EO-&O#=R3^
- MF?5?I_E1K"W?*>(5<7PK]%5U=*)^Y;9^[^$#,I9)WBG*?XC;/[#Y>PP3A#>/
- M^1;=?L<R[M?_#I_O<[GCTOJ/:=_CT4-$I#\T[_H:AQX:]Y]6<?\QU^<8D,"G
- MOTOX(W=BPG]@_>^J)<>SB>'UEZ=OKL^3<(53_Y66F_Y],AY"O/&;Z^.4M/ZK
- M-BY1GU/9SQ@#+=\GUB_2]B>PGP@G]57QH7U.`(DY:1^5'WR=[O@_)@CF$8[/
- M&6P2&7](_U>##L:',]FYSO@44([ZG,;.<?0#ZA^?L^JK?R7#Z'=_:,I;?_B?
- MB!&4CA^5E,/_V3AE%8\_9/PP[7M.6O\W]3D7&18SS_5O\IN$"L6<C!^F/O]`
- MA;U<77\(]M]I_E?H&,[#1*J!S_^O>GP^GTTAG-C_5??_"]C%?GUEGZNZI=3?
- MC`\7X@J+QU\R?IOK:S+N(+3^6<H1W[_8E>']):_^)K^+T_J?B6\*,HSO/V3\
- M,_E5HT+>^Y.IST6H,-6/N!I?#E:/J"GU5^/30.P$L>GACE;>]:7&MRYJBG<#
- MX>3Z4OEW8.P*S!R\^FI\[<50G7KJ7\EP=Y[L'[],?:?B#D_'GZ@^YOY^";LU
- MO!3R]$U^UR3]V_I_B\]!C%W+=N<[1_>/)D&YX=6U^/3'$QGKR7M$O%5T?ZG&
- MKD;UGHQ-8SOQ[D0_NC^MQ*>WFE<EZC_/K<\-J'`\/QGB]B_4=SI:*.:)^P_R
- MOQHM[-57XR_:_\;0?R;VW]3PUIK?Q/Z'-0A;7])_U$6!3<N;V=.$)^97X+>P
- MI_SZZW3_NS7A/[#^3?^\#2U<&NDG[G_([W;,`.GUY\0'/H/=&PY%>?IF?+TS
- MK?^K^R/J?Q=['<*?<7U/]N]ACAI/Y%VO\][%&_OKJ_H?_=F];_3?O<APR]
- M_=?D=S^$:/]WXL/U<0?N,/']F]3'Y/=@6O_?&3_0/Q]BPW@?7__?"6,/^O?#
- M[!#>V]?_<=-5U\<CK#^O]/5_M0&(Z^O1M/YOZO,8*JS:S_;?<AN_J>_C:*&8
- M-X_OKZ9]'D`+>_5-_WZ2_8?W(_/#*/\2S?_+GF79J'[M@Z";X9MU_WR*O<2:
- M^O1-_WX:5TC\_#$X]F^NC__A"J//)\[\&/P)7*%4/\N(_\.QR<!FLJ91?$$0
- M?.G&]QPR;$+B9\S-[WEV`>_GTU<<]I]A'\NKH_S:!^4UKOT7()$E^BP1WXM.
- M^U;$]5NG^4L.#UP.^S/1`G'\%>[XAO7M5]A<-<V+Y\_4/_BLY/BVSHUO-EM-
- M\N-!-AOS"O!7V2K",S'?HOG+["-P%ND[\0UF[#4<0FE!])WXP.<FQS_NQO\Z
- M/#0C^N7=W/SGL`^)?Y*_XD,8+K<W6,NT^@Q11V02]6GCQK<`'IHS$A_U#U[#
- M/DCW?P1CB]A;6$9(R1_\C63^O=SX%L,#K9^3_Q"UA/1^NO^AC+W)W@DO=6_^
- MX&\E\S_4C6\I/+0D_IW\P9>PE>G^AS'V-GL/0WE*_N#O)/,_P8WO77B@]7/R
- M!U_&WDOW?R1C*]B'X5#JO3[!WTOF?X$;WTIX:)W6_N#+V8IT_T<Q]@'[&$-]
- M2O[@'R;SG^'&]Q$\T/HY^8._SY:G^Q_.V&KV>7@VQ-O^X!\G\W_"C>\3>&B3
- MEO]1ZNLD[Z;[Q^'KS]A7N`VGY`_^>3+_>6Y\7\`#K9^3/_BG[)UT_R,9^Y)]
- MJVZ#_OS!OTKFO]J-;PT\M$O+7QTN9V^G^Q_%V#=L+>N8EC_XM\G\-[KQ?0</
- MM'Y._N!?LV5^_\;^.DAT2(L?_'NV-#W^T8S]P-XB/!$_^-ID_1H8KOQ@#VN]
- M<W]K',]OS/K+3UC!B-<_\]<O?F:G$MX\OO^;]8\-[!1'/YH_F/63C0G_T?RK
- M(W[\G,O]PD[G?4E]HO4QM6BR`2?_V"E\SXBWB?6[XL=F]4W*<7P/6E\Z?ZS-
- MY7YC2XL6@6\-><,`RP6:JW'^4WPS@KU%N'#Y)[G<'VQ)T4*L(&@>N/PCG*1A
- M"XL61/J#7/Y<+K>9+2"\-.9[:/XGFT_X-3$_%3^^PHE&-L^OKSB>(;>R&L)'
- MQKR?YG^QUPDG^??%CQ_P30YV8E@_FW]@.>;6JOUR[*2P_EM-_2.N^L^7ZANJ
- M$\+VRZL?8E?MR[G;_E'[FO5'P8\AZ_>D_YCU2\G'$MX\GK^:]<\,/]K1SUIN
- MUD^+$OZC_H&V"_=X><`[1_UGN_CZ4*=V4)\2?D21^I:.Y<$LP]7S,_I7X-CO
- M'K!9;OX->!%9?VT<SU^-_^*$?KG5Q_RS"L^@#0U7^6VE\SLU/P4OXRW#_=E5
- MX=\[QKQ.\T:\">\2<:)?I^V7\M98OUXM5K$_N*./WQ1OPMMC_=KRBJ!/0C_+
- MR_CV*?:5_Z:\!8F/S)_5;VO5-XA;\!U\^JTU;T[RWY+@RG\+W@GK_ZO%1L2W
- M!?%O2,3?DC<-\]^8M&_\-^/-_?4SZ_NMZZF_LE_.&R'_%:'_K8GZ*]Z&MT/]
- M4NJS3GWC>52XOY'G7_T&WHZ/)IS4S^BWY^5HO_3V[<`;(_\54?MM2M2G+:_@
- M77WZIK[;U5-_Y;^"'U5O_)UXAS!_7_V5_8Z\.=I_1=1^E897X_JMQO/_]L0_
- MU:\!KP+OPKMA?4NW?_A\;W@5UK]J,(;MP'OQGK[\5NDQL#/O0MJ_29[]G5+\
- MV_6SKORZ<'TQJ6_7W[KQ'EB?R_=OX]N1;\^[1>W3)-C)<HPM-5B_Z,%W0?R6
- MMPK.V]W5[\F[(O]\^];_SOQ:$E^\/F/7#[OS/GSG>N+;E7='_*LC_Y\FXJOD
- M??DNOOJ"8W.8]>([D/J2]2%3_UTX6M"G;]8_=TMK_V\0`W@?OA?\K\AO?Q,?
- M5D_=^F?<_'OS:[SM9^WOF>*_&KP:O"_?T=M_;/Y[\5W=_I=QX]N#[X;ZKX[:
- M_]O%QC[6IY3]?5+\5ZF]=_!^?'^L;\7]OUL3$S_F3\K^OOP@KJ8B=GT@F&CB
- MJV!J\Y[MS?N$\:]/Q&_M]T_K_V;]K(H_3-872?\WZV_[\X.Q/D?6)SJY\>W'
- M]^&[HOW6V_A+7'X@'PC]U8:W"O;N83@N%-4_!_!!?#=JW\:G!C7TKX/X[B0_
- MTO],_@?P?GQ7C[ZU?S`_`/5;$?G??6\WOD-X%>J?KV_S/Y0_1.I#KC^S?CF0
- M#^5]//I5N"C5^'-X6O\#5^/C(+Z'M_UL_H/Y@4[[)_,[C!\!__GCIUU_/2*M
- M_YGXAO+!J'_^]6?M#^.'NNV?R'\(?S"LCSZ)2_RK^>=CV#_G^OE&OZGA@:"R
- MV/")+)S?#W=XXZ`OY9ACCG!X:=#5\C,T'\GGA//CO/4)Q=>H]U$I_3*CC^<3
- MTS^Q+1GRT8Y]K,\%A&-^/,;AMP25`<D/IX&/3NB76[Z[YF,=+H*^E#^-;TKR
- M5_SQ]]+\6!T_M_JL`>&P?URB/JR8\,?4FS,H+PNREJ-OJ?GQ.,/U_+][$"PP
- MW#Q_GL!_)?O?>+ZH,5SU3SR_G<A/YGM&O$W\?&R>/X[G?X67:M[SL7D^/(F?
- MQOLR,O^VW#R?G,RW$?TV;O^"_5/X"7P/G[Z);SS_A<3?)H[?/+].2.2?M?F;
- MY\_3>,X?OXGO=#Z>Y(_Y_\5N?J?RC?[ZF?-19_+]P_T7?7WFGZ_Z!Z]*YQC#
- MS^+]_=R<[SJ#'^#EU7CV4NO/$_FY?)]P?/P6<1;'/*OYV<[S#>X_8V*NUK_/
- MX1>1]?_B(-L]MJ_X/Q/ZC.@K^Y/X/_G>X?WA6VV?Z"O^KS3_ZL4)X/]V./P3
- M^XJ?F^:_L8[O?#Z%[QM=?]`W_;>ZH>87./H-`F;[M]G?^`]_CF7)]1L]'YK]
- MD0OY$_[]![-_--FQ3_8O6FO[%SF\).*VOA?SLU&_.'X;GVV?\QS]3%Y^U?P\
- MTGX-XO8S];DD4;\LJ9^J[Z6)^I>/B>TK/B6E_<)QZC3L__.KT8/)^M%[A$_`
- M_C^?3_9/</TT(_4%O])<O_J;T0D.^Y?QG\1IC.P/UA@N-9_*I^$*B^OC<-B_
- MFB\@_HMC^R:^:_AE?#\6^\_.=_.[BJ\G_HMC^USSZ_@-&`$R^>,+U_:G\87.
- M_E'DW\1W/;_*J5]Y)S>_:_F/Q#_)S]B?SJ]%_I[]&Q/?#/Z#7U^U*L"-_":,
- M,&1\:T`X[-_`%_GC-_QF/L.?O[%_"__>WW[;-+^5W\4'D/I'^MNT_9OX&_[^
- MLT7SV_D]H7Z>_RW:_AU\K3__S9K?F=;_-FO[M_$E_OQ-?'?S6U`_S_Z5R>\>
- MOL[??TQ\]_+;^($DONPL-[^[^&)__\6]#X=CV/W\W^+X2)_L[^+Y"(=_V`/.
- M]8OZOVFX>KZ;C/,%_%L2'_9W;?__1?.'^`9QFF]^H];_SL?^/_^5<+(^_KOF
- MC_!?TCD.+3S(-_KMJ_Y["J9`_%.2OXSO;X8_SK]R]F\CKGY@C?8)_J73?R*N
- MJ@+])WFMEX<_P/_+O_#:5_]=?1*F</QS;WPJ?L4?Y9_Y[:N;RLW8_^?O\"-\
- M^2M^._;?^:WB1'I_L+Q,\V?Y3'XH4_O(1G\JX;#_-/^!#_?IJ[57Z#_/%_#!
- MOO91'/HS3?]Y+?Q[ER"<=Q+[+_!G^"&^^$U\SZ7I=V#AH?*7^*O\\$B_8:RO
- MQL%KL+_.IY'\2?_NI.V_PJ48%?$6,>^@XWN1_TKR+XOY;_A<K[[1_SH?Y/._
- M$1_X?Y5?3_R/RXMO#G^1'^:+S^0WB_]"_)/S.[_I^L[E\TC]$_Z1W^O\!G_^
- M)KX:/HO4C\1G\GN-;_3G;^S/YZ^1_(E]$]\"OH'HE^;UCX7\.?2_C&E?TOZF
- M?\WCTTG\S>+KKRFNC]NP_\^7HO_;;UC*H*75SVJ^F+]%>'&PGG+X7\+?=/0[
- M4/O@B_C[?*BG_UO^%E_,A_BN7V-_*7\#W%Y?Y/HQ\2WCBP@GXY/)[VU^.\F?
- MC$_@JC[O\-L(+\J[_M_E3^/Z(M<WY8AO.?^>M$^1:Q_\3;Z.<->_RN\]OA;<
- MUH_']6^F^4I>BQ5F=<XDD7\SG=_[_`[$'^LW2N2_@B\)ZV/;KV6MT6^E[7_(
- MOPSMYXT?QO]'_+LPOKSQMYG.;Q7_EG!7GTW'_C__QL];:?X!_YKP!GGY?<*_
- M\,?72O-/^3UA_GGZRO[=V/_G=Q.>B`_\<WY7.D?[?\SO))SD;_S7\H\YCD&8
- M^@91_6W\7_+WT/]9_OAOZOL5_X`/(_H=J'WP+_@??(1/O[7F7_.ZD.O^0>YO
- M1O\;OCJT/\=7G^G8_^>K",]OO^_X1^D<]M?R#PEW^X?ROXZO"/-/<MO_O^?+
- MP_%CKN$;]XRYLO\#?Y?PHHC;Z^]'_BRY/E$?R\W]<;VY_^7%7Z;S^\EP_2;"
- M5L$7EG/-?S;\U?#OC=WQ%7R#F;]ZQU_XW\CGA_<7S<GX;<;W7WA-./YKGG]_
- M_)7/">\OFI/[E[F_;>*OA/>_/'US__V-B_#^G,=;:[Z&<\+=_2W5?__@UX3C
- MH^Z?(NA0:[CI_W7\*__X9/K?9KZ&C&\B[M^F__[._^(C(__Y_7L+9V%\=OQJ
- M9/VWU7PKSW'*.U".^/[BVQP>Z9O\_N2;<?UXYF>&Y_C6,+X\;NPSL<4?OXF/
- MBS_KS4^(W[SW!]L^4FSRSQ],^V;$RZ3]$_,WC%]%XCIR?R/SL]::;^/7>N^/
- MX?KMC]C_%[I_OQ_^O65)=BOAM=C_%_KZT/R2DNS7AIOUW08.;UX26-Y3\U*'
- M'UK"*/\0^_\.;QSS+IJ7.;RKRU_'_K_#>\4\T+RQPWN['.=CFCB\OQL?>-;A
- M)2Y'?9HZO$.<OUH__0G[[PXOB^M7SO3^O\-YS%MKWD*TQ/ZQ;9^V)>4T?K7_
- M+[+8_[:\//9OSB>T$@VQ?V]YJYB;\Q6M$_XC^VOUISP1?Y2_.O^!_-HD\H^X
- M>FLFZM/6X4-B_XJC?[1S^!6Q_ZF:MW?XB%A?\<^P_^_PEC&_6?..#A_G\A8X
- M\>+PL3%?HGF%PP>Z'-=/IT3^4?SHN^H>T3FM?LMSX3/N]@X_Q.65>*)S>%'$
- M[?F!'<0.V%^V[=LPCL_L/^\H*K$_:WDVMH^V8578_Q=[8G\YUH_LF_W?K@G_
- M3O_`C;F;PXMC^XKC_'1WA[>/^W>=YCT2UZ_#)V#_W^''QO;5VX1NQOZ_PROB
- M_%?C\P#VWQT^-;:O#B*`[YK0CW@?%HZ_E0G_SO6'^'HYO+L[OB"_W@XO=Z]_
- M\-T2]7,XZMLGK?W-_OGN8E_L[WK:OP(_JK#_+@9@?]33_EU9N'^ZIS@<^YN>
- M]M]9[[_V38Q_4?Z5+/Q^SUZ)_INE'/_V3AO_U#HZKH]]$M=/Q!&;NKZ*$]=G
- MY-^\OV-?H6<<J\+_KH[O;^;]'_N)]H0GW@\R.9?K+]H1GGB_2!7V@45;PA/O
- M)\%G?]&&</)^$_/^DP-$.>'D_2CF_2D'BM9^^^;]*P-$*S\W[V\Y2+3TVU>;
- M%N`#10O"$^_/`#]8-"><U*]&\T-$,[]_\_Z:0T53PB>Z?.]<[C"1]<=GWI]S
- MN&CBC\^\?V>0:)S.,]C_%XW\\9OW_PP19>GQ7XK]?]$P/;Z%F)&+4L(3[R?"
- M9YAHX+=?H_F1YI$MKW]=KOE1HH3PZ6[[@0\7Q7Y]IOD(440X;3\=XTCUQFGF
- MJ9]Y?]0H]:9NG_TJS4<+07BB_X./$9SPQ/NMYJBWZS#":UV.\:^?Z$@X>?^.
- M>KYX%-_8%2>(HYG]EUB_`#_6C`\CPC3<]05\^8X=Y_`@/G_;2O.Q"7W*J_%=
- MA7'B-'%,FG_P$QS]XOA\KHGO1#%6C/'IF_R.KT<?7UYC)XE3X5]9J!1YZRO@
- M)SOZ7>+XU:%5/-2>XO!^,2_2?'R:OK$_08P78_$M]Q%2^P\2\9V65C]3G]/%
- M\?[V,_4]-:7]JK$/6WT/]O_%1'$<\E\?YA]__[.Z$OQ6[/\;?;5__SMK&62/
- M-O;[,O7E7G:6P]?&_"GHXQK\I\-S$0_]U^%\@,-?C+GQ?[8X0QR+^NCX6KKZ
- M]Z@WQU%][.]:_VJ?&?Q<<259?\+Z8JGAL(\O[[*):?H_Y\+]J7^)9^45+#[?
- MG;7[3[7X8'S[M]'7'.?#+3?[5Y/$??P@YMF?PMFA&CS_GB\N%">P8TU^I/W6
- M:'X!B2_<OSXGYOAR,?N/PX,@>TYL7_'S$OI9HJ_L3Q;GB7%1?8E_$]]%)+]R
- MZ)=3^[=C_U_,%J?Z]D_6:'XAT2]5S\=67ST?W8LV%(^(\8RLSUU`^%UX(G;J
- M6QIDFQ*.]KLT47]F^5>:7^;PG6+]#?A,Q8@JOG;V=Z/]<W4H&OP*1[]3;%\=
- M2L/\]4J'%\7?_ZYD8?^Z2IPCCHOJTSSV;_KGU#1]-7^^#_O_#I_LY@\^Q>$B
- MYF9]Z5KQNW]]TZS/7">*4M>O5/M-$QG"R?J'61^Y7KQ$UD\2^UO8W[E!S";K
- M;V1_Q^S_3!=SR?I=8G\(]F>(A63]+]Y_L?LS-X;Y9_+W%Q3'^O1-ICZ:9X(J
- MR[=J?K/1U_7)!E,L5[=U\%L,GVUX9+],\UM#'A@>!/TI1WRWB?_YUU>;:'Z[
- M>-M9GVU`UV_![Q#+G/5=1KAJOSO%RG!].,GM^OE=XO-P?=VWOJSLWRT^(SQ_
- M??\>\:F?F_V!:\0GA,?WEQH\GU;@^KY//"E.8OGK[XJKZ_M^\03AY'RHX0^(
- MQ[WZ5<;^@T[_C\?'4!_\H<3X$XV?AC\L7L/X1<XWE!(._X\X^B(>/\WX]*B8
- MXM_?-N/;8XGX[/A68_S?FXS_`C>_)\3]SOCHY`?_3XK[""?G<PW_K[C7'5\)
- M5_:?,OZWA'\/&M7D8CX.^D\[G#=BAE<;^_\C'/5M%.3B^)3^XPX/&F4-#\=G
- M]+]GQ2OD_D'V-\"KP)\3"\0$S_Z^.O^N^//B)7&*1[^F5MM_)ME^I:[^"V(^
- ML4_\?X$/^(N)_A/U#V/_I02W]JW_F>(Y<3)IGRSM7ZC_*V(N_%M.SK^;_&>)
- M9Z#O65\V]9N=DI^]_[XJ+L+\(F-X$,]_S/U[3D*?T?C`7W-XL1L_VO=E\1#Z
- M5R:/V_A?%R][V]?F7Y/P[UQ_N+_-<WC'(+!\M>;S'=XLTK?MMT#,1/^(ZU^>
- M:/^YXMFPOM7X:S-Z?D3]AO-#BT1C>;HG_K/QVU#P-T0C+U^/WZ:!+Q9E7GXN
- M'FMG@B\1#;U<M4,-^)NBU,NO*=7Z;XD&7MX$C]W7@R\5@9=?!SX,?)DH\?LO
- MT_F_+8J]?#CX]1=B_U\4>?F-X$W!WQ49+W\%_%J<GUHNMO?R1<H_^`K1.55_
- M$L;*]T2G5/\_G8_]?U&1&O_9X.^+[=+S!_]`=/3R6U"_A\[#%HKHX.7EX&/!
- M/Q+MO7PZVJ\2?)5HE]K^G<!7B[;^_H?^LROXQZ*-EW\7:/^?B'(O/P._/0C^
- MJ6CM]Q_H_#\3K;S\$2RKG`[^N6CIY5A)9M^!?R%:>#EVDMA$M%^M:.[EG=6R
- M#=K_2]',RRO!IX%_)9IZ^3'@K2Y4_X]R62]_"/PF\(6BB3]_,___1EQ&[N]G
- M!LP^WVW(A<\/WR;FWQ'_.1<^/WXG'L#S'SF?9)\OS/G%M8[^[O'SHSG?N4[<
- MCO.5\?TO>OXTYR^_%W>3\Z/%,3?G-W\0-SOG.Z/SDSG-?Q33R?G73.S?G+]=
- M+ZXGYW,)-^=[?Q+7D/._Q3$WYX]_%E>&YY/S_)OST5\[^8^*]<WYS(WB03[0
- M]WSYBZ[?+^(1/S?G,W\5#Q.>?[YS@WC(S]6R(_K';V(W>0:X_G]>(_,#PW\7
- MO0DGSU?J/H/X_A"]O+RZ5.O7B4JO_?!+A>";Q:ZIO!KY_2EV\?LWX^<6L;.?
- M*WU<?UM%SW3_X'^)'O[\2S7?)KJGYX_ZYD0W?_X-M#Z37?W^#>=RIU2NXA=R
- M1[__0.<OY0Y^WD#7;Y/HXK5O[T]%\IWP?.]XP[.&V_M;L7S;X>6&V_MCB5SF
- M\,B_N;\&<JG#`\/M_;F!?,OKW][?2^6;7O]V?M!0+O'[-_.+,KG8Z]_.3QK)
- M-[S^[?RFL5SD]6_G1TWD0K__0.>?E6N\_NWXW%1^Y?5OQ_=F\DNO?WM_:"YK
- MO?[M_:6%_,+KW]Z?6LK/O?[M_:V5_,SKW]X?6\M/T_,'+Y>?>/W;^W,;^;'7
- MO[V_MY6K_?4W\X-V<E5J^ZOY17OYD=>_G9]TD!]Z_=OY34?Y@=>_G1]M)]]/
- M[__(OT*N]/JW\[-.\KW4ZT_-[SK+%5[_=GZXO5SN]6_GEQGYKM>_'?]WD#*<
- M'^3%;\:/':4@/'_\V4ER/S?C5U?)4NVK\:^;S`D?M^-G=[F-\/SQMX?\R\OM
- M^-U3;O7:M^/_SG)+*E?Q[R+_]/LW]=U5;O9S<_^JE'7I_E'_7O(/?_[F_ME;
- M_IZ>/\:7W>1O_OQ-^W:1F[SVMR[&\^'GN=SN<H`\"W_YC6G^E^$5.)]2`[Z'
- M/!@\,#R>?]0NU7Q/.=#1M_ROI=I^'WD0X;%^Q4*MOY<\4/[#PVL7:[ZW/(!P
- M4K\EVOX^<G]P&U])Q.5"S?O**K\^N%KCV%?2^5E9O+ZL^,?8_Y=[9;`,;CA9
- M'UVF>7^IUT^M?K1^ODS;[R<'D_?C9//RWU_N(\]D^>M;-OX#Y-Z$E^3E?Z#<
- MRZMOZU<E^WKU;?L>)/MX]6W_&"CW)#S(:]^#Y1Y^_Z9_#)"[>_WSMU$VK'$<
- M*D\B]27]'_6K!3],GDIXB<,K<$;J<'F*5Y_!O@`_1)[LU6?O(#Z<(1LL1\JS
- M&<L;7ZL-'R)'$$[\@U>MR.6.D,.]^LSP07*45S_L'Q_D<L-D'Q(?]K=F$P[]
- M(YW^V3CNGRLU/\KA0=S_5FK[0Q/Z$3?QC9!#Y$1??0T?*0<33MK'U&>4'.3E
- MMK[#Y1%>^^ILC8I_C!SM;S_PFN7X_K\<2WC\_8W<8LW'RJ.]^HHK^Z/E&*]^
- M>/X._%AYC-__$FW_.'F\W_^;FA\OC_/[?U/;/T8>Z_?_EN8GR!/]_M_2]D^4
- M)_C]X_IZ'7R\'.?W#\YA?YP<[_>_4/L_68[P^U^H_9\BA_O]+]+\5#G*[W^1
- MMG^2'.G77Z#U3Y-'^O47:/W3Y3!__/,U/T,.]<<_7]N?((_RZO,:K?\/>817
- M7]1H_;/D$'_\\S3_IQSLCW^>MG^F'.2/'[I_88PZ6P[TZE>!5^$:.D<>Y-57
- MO.9=/,?(`?[\E7WPB?)@PLGS/[C$&/,O>5BZ?_!_RT/3_2/^\^0AJ?[5!)
- M'N[5KT5L]^,:NT!6$4Z^7_6VYO^1!Q).SJ^#5Z"/7"@/\.HK^XJ?+_?WZR_7
- M??PB,S[J[Q<7Q]^/7ZGYQ0['^$HYXIN2T(_X<LTGRY[.^![Y5^/3K[G<)?(J
- M>1%3W\/'LR`K+@ZXX0LUOU0>%<X?>DCUN@JBKSC6X"YSQG<>O[\/O`+\<L.U
- M_4QL?['FU0XO*BXGG/V1RUTIKY471_[)_M]"S:^2P]/C0_Q39;6<[-,W^5_A
- M^"?Y*XXUP&OD#7)*6GW`KY4CTOTCONOD%6%]\[C)[^J$?R=_D.OE3;(Z\A_$
- M?*'F-\B1Z?X1WW1YM;]^)K]I]>4/G1OE;?*2M/KC;S?)4>G^8?EF.2VLG]<_
- M^`S'/\E/<3SCWRKODI>FU1_\-CDZW3_^=KN<$=;/6W_\[9;ZZH]GI#OE??*R
- MM/S![Y)CTOTCOKOE+?[ZF?SNJ*_^.,-PKWQ`7I[F'_P^>72Z?_6.#GE'6#]O
- M_N#WI.5O[#\H[R'Y)_3!'TI<OS3^6IQQ>#AQ_5/[BC^2^B\UO*/X[V/B#'
- M^O/#W%*=CWM,SI+8!@C/7V7I^*W>WSD#^^/R%3]?K?6?D"^GZT_#^0/YDI_C
- MWLINPOZ_?$%>Z>-J?+X%^_]RII]_H/6?EL^GZR/^)^6+?JZ^'X']W6=(_4K5
- M^3>[OH][GSH_]:S#>\>\-A>>KWM.3HK>#U&*\W?1_@G&9K6_\C]'?_]X_\/$
- M-U,^A?-[EN?G]X+\KY^;^KPHG_1S4]_GY=/I]M%^+\LG0I[6?J_(Q_W<M/\L
- M^5BZ/O)[23[JYVI]$P>'7I4USOL_(EZD^1SY>CH?C/U_.=?/2S2?[3S?8W]H
- MALM?EW/D5/RZ1/KMU\A70[[8<)Z(;YZ<[=<W^<UW_/>.S\\I/@'[__)R=_^I
- MF^'F_3D+Y51W_\IR\WZ;1?(Z9_\KTN>:OR%O=/;/(JYZY025UZWN_IOEYOTK
- M2^2]SOY=Y-^\/^5->:>S_Q?IF_>[O.7D7Q&4-R5\-/;_Y??XJIQ'?XOFR^0Z
- MPDE\BH_"_K_\#E^5C+D3WTCL_\LUK'V:/@X>OBN_8.W2](=C_U]^@J]ZINCC
- MB[$KY$>L39H^#IZ])U>R\C3]8=C_E^_B*&.*_E#L_\NE&+=3]-&_/I"+6<LT
- M_2'8_Y<+\#6V%'WT[X_DZ[A-I.CC?/XJ^:HZ=Q+?7PA7[Q];+6<3GHG?_[59
- M\X_E+$>?<O7^K$_D\Q@7[/VK?9"M-5Q='^!SD]>OZ3_V_32?R4?YP=0^,_J&
- M?RZ?(CS__3%?R/\2[KZ?1O%:^:1?GVG[7\HGO/ZKU?4%_I5\W&N_6OW`P;Y/
- MY6-^_^KY$\\_7\M^Y/F#G&]5',_(W\C^A!/]I9I_*_?SZR_5]M?(?;WZ:GU(
- M?7]VK?Q97L?4>YC4WS,N1PSKY"^$D_6A]S3_7F[TZH<<]K^3&[SZX?<;Y^9R
- M/\HZ.2WBY/L!BL/^>OD'X61^]X[F/\D_O?HAA_T?Y&:OOLUO@_Q.7NN+S]1G
- MH_R>\/S\?I'KO/JV/C_+M7[]9;K]-LFN3OL$='T1\?^67!^TU]=*S7]/K"]F
- M*8?]7Y/KD]W<^M7)'TE\^?7?+'\@G-3/M-^?\B>OOJW_'W*]5Y_A^9^]AG5L
- M69RY@>0?\>58O\!WY/Z21>#V^D%].\>\:E8NMTUF_/K*/O@6*8E^$.LOT_Y9
- M9D?_\_\RK<\S]=0?7#@\47_8SZ75W^2?R6R3U_O\F_B+,G\1[M9'Y5^<V4HX
- MZ7^F?C*SQ:^O[+^"D^.9IID9*?9K7L;W_S-9PF%?$/\OX/O_F29^?64?O"33
- MC/`@UE^F_9=ENJ2OKT._4:+^3GW!&R?J[[0/[#=,:S\37S;3(#,]K;[@33,!
- MX8GZHC[-,B5^?5/?)IE2PA/M.Q/?_\]TR&`:SV;S?/_L>7S_/].>\"#:?P[Y
- M__#]_TP[1W\HM?]T+M<\TY'P;##.\F7:?WFF,ZE_F?DB@>'0;U-?_P=OZ_`R
- MMWU@OW5:^YGXVF=:9F[TU<_DUR'3(N0V_V1].F::^_5-?=ME6H5\'C?Y65Z#
- M#]JO(G-AYK9(/QO'I_@S^/Z_$S_&[WF$(_[.#B^/N:G?]IG6)+ZRN'ZF_ET<
- M?>'JH__MD&GH])\LU4?_VC&AGZ7Z&!]VRN3(]4_:SXQ_7>O3Q_C=+?-K>/_,
- MN[[,_:M[??%C_M$C.3Y:OESSGFG^%<<:Q\Z9*?)"ZG\%X5B_W<71+X[]*XXY
- MT*YI_I=I7EE?_OCT2O9_RU=JWCO-_DH=PV[)_D_M@_>IKWYXQM\]\__*K@.^
- MJB+KWY?,"4EHCR)&P(^([HI^ZD\^5UUUU:A8P(9E5:R@($TZW54?8J,(2">T
- M`"$!0:0H"A:"BHBB8ET+:I"B*,T5$(7U?6?FS+UWYMXSX05^[_=>\O^?,V?.
- MU#-G[DM;(S^7&^87=7[RG*KLQ_SJN579C_C?J[(?\^?G564_XN>+"XW\<3+,
- M7^K\_`71^=D</X@WL_`K0ESO?R\46[/Q,2V]?XCOGR\2.PP\OO^]6&SGY?7^
- M^1]B&R^O\QN7B,'9>$U$G:\!GF\4:-S/CUPJ'C3P,'_AYS<N$T,53O6S\R<2
- M+Q)#6'D_/W2YZ)L].)#'^*P^X7Y^Z0K1Q\`Q?C%PF9^Z4O1FY?W\5BO1#W$C
- MOEL=XG(/UUH,S![B*A_EVX@!!AXI'_O(U:(_*^_GMZX2@Q`WXB]=OI__NU;T
- MRAYDZM>XG[^[3O0T<-1OX#+_=[WHP<K[^<-KQ`.LO)^?O$%TRQ[HP%7^7W0U
- M<,,^G1^]271AY?W\:EO1G9?7^=M_BD[9`QC<S__>(CH:N&&?SA_?*CJS\G[^
- M]V9Q/R^O\_OMQ&W9?1VXE+]=W&'@AGZ=W[]#W,[*^_<#;A/M6'D_OW^7N#.[
- M'U>^OA]PM[C'P(WR=7[_'G$W*^_?#[A3W,7+Z_Q\!W%O=G].7N?W[Q4=#-RP
- M7]\/N$^T9^7]^P7MQ7VLO'^_II.X*KL7_J:9FI\2]&467G@_YWYQM8'G!KA_
- MOZ:S:,/*^_=S.HK6K+R,W>3^I:OH)R9[X?XFV=S`<7_1+;(_"KZ?7>*XO^IN
- MX8GP_$GC#XA6QOVK-J%_)([[KQX1><_4CW@75_EKR/Y>8K"QORL(X]<U9']O
- M2SX_./]2..Z_^KCL1SR%^[>^$3QIVH?R_5SZM?_ZBRYB$F>?]O^`B+SE7]S_
- M#HR47V#:A_@@E__6D'Q/EW[MGR&B)]_^VK]#(_ZW_(?M\Z#+O@K"_R6:6??W
- M@OBO@OK'0R[_KB%\L*-\63?Y>D04BQF>L?_P#!SCBU1D_U1PJH%C_8:Y\!6$
- M/RHN,?JO$5^LH-?PZ/YLF*$?\8>C^S\?7T;V/2Y&BV+._F6DXXF(O/_W(Q2.
- M^I^,MJ^/+R;\J4C\5F#B6+\1T?YKZD?\,8=_BK3]H\0$@8]I>H<2^GZ&9^!H
- M_^CH^#+U(_ZT>$Q,\QSU0_TCH_U+XQ4:'RNFLNU?H?6/T_)T_R_;PHN68O[=
- MPHW[AU(>\?$1W*R?E)\0T9\;J?]$,9)M7]]_DRQYV[]%.'XF1\H/_GX(XBG$
- MIT3PI.$?*3_&H=_WSS0QAFT_W[_%#O_[XVNZ>%A,-=K/PO$U-3J^C?%1@?US
- MIE@@9GEA__/+5_(X/\T2Y09N[.^7$3Y;E/'RRTC_C.CXV:)Q.7YQ_IXC+C;&
- M=U8X/TE\=3H]-QI?M=3X8L+G1<]'3!SUEUIX7H!7+B5\?M2_!EZ)-I1%Y_>6
- M=OW0.V*F)Y]#H?HGO[+]LT#,-'#TWU>V?Q>*&;R\;I]G'?85+B?[%CGLD[BL
- M7TET_/OV+TJK^.,Y\:HH\1[3?[^L51@?CB!\B27_5QM_)9U^7KPEYAKGOT'\
- M^C3A2UWQ\QC"EXEWQ#SS_-C'QQ.^W!6_3R!\A=@H2KGRIQ#^@JO\J82_*#:)
- M^5SY,PA?Z2I_)N$OB4]%&5?^',)?=I4_E_!5X@M1SI5?1OAJ5_GEA+\B-HL%
- M7/F+"%\<:;]DI'U?$XO%;"^5)5N_#K9_D!_1_>/U:/_:$.(RA[-&O"'FX%/,
- MOR5V*'E%T_HE_FJT_QKR\@QQK3C/&/]&^2,(?R,Z?VVP];\I7L?^2W]?JJY9
- MOK:O(MK_?7G=/]>))5A_9O[1_?MM2[YI>#XH<5R?UT?/=TXQ]"/^EDM>]^\-
- M8BE?OAX?[T;D@_/!,:3_O>CYCZD?\7=<\GI\O"^6\^7K\?6!R_X)I/]#5_VG
- M$+[1):_'UT?B!;Y\/3X_=MD_E?1_XJK_#,(WN>3U^/Q,K.3+U^/[<Y?],TG_
- MOUWUGT/XIRYY/;Z_%"_SY>OYX2N7_7-)_]>N^I<1_H5+7L\/WXC51OEGAN7K
- M^>5;E_WEI/\[5_T7$;[9)3\RK<Y`MXBA./Y3:OVI8^9O)8XYT._%$`,W]A^C
- M"=\J!O/RHTE_I1C$RX\E?+OHQ\N/)?T[Q$!>_AG"?Q`#>/EG2/\VT9^7GTCX
- M3M&+EY](^G\2?7GYR83_+/KP\I-)_X^B-R\_C?#=HCLO/XWT[Q$]>?GIA.\5
- M/7CYZ:1_EWB`EY]%^"^BLQM'_?\1W7C])83_*KJZ<=2_3W3A]<\C_("XCY>?
- M1_H/BOMY^?F$_R8Z\?+S2?]^T9&7+R?\=W$/+U].^O\0]_+R"PD_+#KP\@M)
- M_R'1GI>7\^-6/*,6M6"YVC_('4!^^/>])/XCYO^M\9L3_OUZB?^,D,8+]?V]
- M0+Z8<`^.@1<\'T\$>&H:X0DX$5[VXO*I*81GP<FPBI'W-)X-CO(G$2XLO%%H
- MO\0K,?]OX77L^B-^Q%'_U$SR3PU(P@J/XKN#1ORC</1O+D3V+RVT_EF$Y\%9
- MQOXG/SR?FT7Z<Z+R>O^>TNU7$^I@^;E!^?L\`T?Y6A%YKX7=OK7AB%CJA?4+
- MRM?Z\Z/EGV+KKPOYV'\,_:ML^Y)*7G@==/R;:_H/\7J0`\L,^63$OW4<\G[_
- M:F#9A_W[5`/?A?E_.`Y>Q/VIW!\V-.^732/\A)];\@/BTT<-1?']*&?XS[
- M<5K_L='R6QCX;LS_0PI>8>25?L2/@Z:PTBB_X#C;OD;0`,</[6\;F/)32+X)
- M%,)+AKR%HWQ3^`O6C^3KF_?/M/[CH0#]P\AK^QK#(X;]QORBRV\6J7^RJX&C
- M_D(X!<>O7W[$?L1/@,96_:/U^Q]XF/>?EC\16JCY@97']CL)DXI+&?O]]OT+
- M-%3S$UM_U-\<FJ!]U'_J1>N/^,G1]C?KC_I;0,(H/V(_XJ=`<Z/_&?9I_7^%
- M9MB^7\;:7^U__X/Y?_@&WO;H^TT.>N?;>%U\_A\J#;PPQ!<0?CI\Q\LO(/VG
- MPK>\O-Q?[,7\/SR([2."^2N87Z<3?J;E'V-]*2&\I87GAO(EY)__LW`1XK,(
- M/\O"C?5)SY]_@UR<7T2\?#W_GEV5/,[_YT3*M^Q'_-R(_1:^&?/_%GY&B(\@
- M_#P+;QR6K^/?\Z$"XVM__6Z5F\S3N(Z?+W"5+W%<__\1'9\^OICP"RW\S+!\
- MB>/^_R(+KQ/B*PB_V*5?G]\508EQ/E@K/#_3YW^71,>/*8^O2V&8<;Y9*SR_
- MU/F!RRSY1F'Y.K_3RM5_='[K<NANY(>287RD\V=76/)M;'ELORLM_"3;OXA?
- MY>H_$L?[&:U=_EM$>!N7_8M(_]6N]BDE_!I7_RBE_GNMA1>%^%N$7P<76_=/
- MK/LQB%\?*3^0_X3PMI"3:![(-\LM>%?C,K^,X_<&2_ZJ<'TO)?S&B/T6CO/'
- M31'[<TW[$;\9AJGG+P/Y/`/_%?/_\(1Z/I+%\?G(6V"D>GZ1Q0]C_A_&J.<+
- M61PMNPW&J^?_6!SWG.U@LGH^C\7Q#O_M4*R>GV-Q^1T],$L]'\?B.+_?"?/5
- M\WLLCL^WW67Y[Z[0?Y,(OSO2/M;^&OU[AJO_ZOBE/1P2S^/\M1+GKYQH?(-]
- MI`,<YG$=O]P+?[AQU'\/_,[C.G[K"/O%$A>.^CO!;SRNX[?[X:`;1_WWP0$>
- MU_%K%]@GG@OP>/S;%7XU\'C\V@W^X\91?V?XA<=U_/X`[!*+73CJ[P%[>5S'
- M[SUACQM'_=UA-X_K\XO>\*-8Y,)1?Q_XF<?U^45?^,F-H_Y>L)/'QQ+>'[:)
- M9UTXZA\`/_"X/K\9"#O<..KO!]MY7)]O#8:M8B&'Z_.I(?"]&T?]0V$+C^OS
- ML4%0R>-Z__4O.,.*+X/QJ?=O#T77EY8&COOOAZ/KLX_K_?DC<`+N3\/G=X+X
- M5.,I.![WS\;S:3ZNXXMA<"S&'\;S4;Y^'3\]ZBI_.N$/1M=7'S\1W[[&_#E,
- MA36H_XC"C?R^Q/$9R\=U?$DXWD_\6N.G$_X$O`UOF?(FCOJ'N^3E/%N!^7\+
- M/RW$FQ$^`F9"1:`?]T=WC>`1L),PS[&]KX)LS_P_.P-L"-^_/'XQOVK]&P
- MQ,#KA;B,,]_#_#\\9^!&_O98TC\&%AMXW1!OB&]XQVLL+#+P)B%>&]_P_NPX
- M>-;`FX:XO`F%=]2>@86\_=)_>(?K28=_4UC_%/IO`LPS_&<\/].<\(DPUXWC
- M'<%),(?'FQ$^'DI9W&^?*5!BX)'^A?A4R_[F8?OK_C<-AL.K9OM.-W#L7\66
- MO-'_FA$^'5;`&X&\L'&\OS8#EAK^K6_CV+Z3802\9I9OXFC_+'C*P&O%^N]L
- MEWTG$EYBX8:\]L],F&R/3[-]T?]S82*\7D7[S8,);AS++X7Q/*[[SQR8Q.*^
- M_\I@N>%?8_P=0W@Y++/][QDXML\"J_X%]OR`^$)7_]#]_UD8I_Q?2YU/U@AQ
- M/7X6P5@#-\:7'G^+88R!&^-3C]_GX&D#-\:W'O]+8+2!&_.#GC^>AU$&;LPO
- M>OY9"B-M^TW_HO[Y,-UH__JV?]$_RZ',Z+\%,?^O@/D&;OA?M]\+4&SH%_;\
- MB?J7N>9ON8[@^%P)Z^WYW]>OUX>7+/F;[?4!X\^77>.C)>&KX([$V?@QP'W[
- MSB9\M25OC.]S"7_%PB>$>'=\VX+Y]XA\KHGC^<=K\$\L/[0O=YZ!_X#Y_XC]
- MECS&9VLLO%.(_YWP"CCB%0;K>\W<@J3&_T'ZU\)A`[\EQ#L3_@;\8>#Y-OX]
- MYO_A=P,?&>+GX!O>P7D+#O'R+0E_$7XS\&ML'/O'V[`!UIGM[_M'K__KX7%C
- M_H[@V#_>@1?A3<_H'_,,_8BO`SQ5PX^-U/EV?D[Z5UO_N[#.ZG^YICSB[\$!
- MP_XLVWZ,_S?"?M[_4G\EWC^PVB\_[#_R_'X_YO]A-[QK[-_4FZ?W9XA_"/O<
- M^$',O\->'I]!^/NPA\?+2/_'\#-LX/!2PC^!G]PXZO\4=O)X&>$?P2XW7@N?
- M_X<?X!T7GH]-"#MXO)3P+V"[&T?]G\&//%Y,\E_!-ECOPE'^:]C*XS,(WPS?
- MNW'4_R5LX7%]?OPMG(KQ@X]'SI?Q?/@[.-W`(^?+B%?":;R\/G_^!OZ7E]?U
- M_QXVJ_-GE_U;X6LWCO7?!E_QN/;?%OB2QW7[[(!_NW$L_P?XG,=U__@1/G/C
- MJ'\[?.'&L7_^!)^XRT?\9_C8C>/XV`4?N?4COA,^=?L'\3WPOMN_B.^%36X<
- M[=L''[KU([X;/F#Q@YZ*\.0NIT#^1DZ/A5Y1$6YZ?`WJ7PW<:*3I-(;AOB-_
- MS&&X!_`5X6Y0!D2XTWFN.L3,BG!E^;@C2M]G<]=:-IQ`MC?!-WD"U]3FOL9Q
- MY4X';[*E;\U`K]QUX:ZJV^]_IH^J-XEO^(1*Y:49Z)5OZ])T:JV^.H>X%1:W
- MJ>(F\&3KB>W$;>O=F.5S56(Y:#?]&;.\*5SEO4-IR]X5EMY\+^5SM_M<<'#+
- ME5Z!LTOB$ZIC6V^NXA84:!N"=FM"]I9FPFVLN`6S,^$>I[@'IF7"+5#<O1,S
- MX1ZKN-GC,N$V4MP_1V;"/49QU8GJ<K]/Y@?^76#Y]_3\8'9AN.46]TB>XL[F
- MN646MV].,"LPW/D6MRMQ)_'<4HO;D;CC>.X\B]N.N*-X[ER+VQ8"GRW%US:[
- M_RJ?!?X]R0M\QG#+.>YLGEO&<8MY[GR..TES*VUN*<<=Q^N=QW%'\=RY##>!
- MF;LG9?;NB)P?1GI6GPSFAX;JLWH*!)_"5UMD]=46I'>F_#$GSDT%W(23VQ"Y
- M%3)[M\+GAFT\V>(6*;W'XBEK`B,M7*0\T][Q5MW(=OG4GW=4;@/B?HBO)7&?
- M3;!L0&Y"<Y_WN>#@E@=ZU=,'5>JE.57I#;A9;AN0.QB?IDRLBM=MC%6W>F'=
- M7HFWQ=B(#;)N]V^LIM[5OEYPZ`W]D'HUWG=LKJ%WU='LK:?L];Y)JV\V)&Y>
- MP'W<XM;UY,U;F<%5C7\4[FORL_S&/UD@UCV1*`0OO]!KT<*37X)H<"4[3=G5
- M"0;7(^X3$6Y2<N52\*!O0UBWKA:WB7=;$_PLUWC<M4?GOG]9W)2GQJGD'HQS
- M'W)Q_XAS'W9Q_XQS'W%Q9=-&N"D7-R?.'>;BYL>YC[JX=>+<X2YN_3CW,1=W
- MG^^'&A[?%K)%-7=_G&NW!785GWLHSK7;PLL*N$?B7+LMY(90<SV_;B$W97-%
- MP!5QKMT6'@3<W#C7;@LO)^#6BG/MMI"`YB;C7+LM9,EXBPV?]B["TV:UU!AC
- M:*C\,9BC:JJQ.1RYB8WT.W,^FVAQ98=!O9LP0X[\Z!PU1/XHXMR*#^+<P2[N
- MA^G8?#;8JEM-9&L;-L:Y0R)UD]R4_%94:4,)WMQ+]$]([IE%NFY&GU3^Q5BH
- M$G5[_=/6.M0_8D-MR=W`<_MQW/6:V]OF]N6XZWCN`([[)L\=R''7\MQ!#%=^
- M2TCJ4_*9.>;[6-PBY;,4WHI)?1OG]K2X2?(O^JPDX(*#.Q__8RR";7%EP$W8
- M7*.-\Z4-ZWD;>G`VK.=ML+ED0P.,=ULS-MA<LD$5.U078W"[6]Q$-;B>XEZ+
- M-P)/F>[IM3"L6T>+>UI"U4VN;;WQQ\@^*KIN)D_6\X+<<+>7OYN<Y7/;16Q0
- M>B6W&%\R'O`F!MP;&6Y*KA7/DMZ$8<.=%K<&3GZ:6Q[GWA[A@N:FYL:YMKTU
- M<(K6W''XX]]L[@T.KOQ6Y2CW)H<-WM0XU_8#U4W>M$I)O4TE-^QGK2UN.Z^D
- M;IK^\E2&W**ZR)WL<T,;KE<<GTLQNGICN+=P7+D&C?:YFX3/O=JRX3U:"YOQ
- MW#86=Q-Q:_,V7,78(#.<(?<]AUZ22R5-[KJ`>YVEUU-M+&_5JD5]OSQC^DYQ
- M!7(OM_3FXJ8`/^_`UT.9<=4YT'!/C\V0>X_%+22]._'U5)QK[ZO/("YFH5+#
- M,[17GB_)38C<\SAM2!+W)WP]?C1[-7>7[S-;KSV7Z+JA'U(/9VBOM.&1N`VV
- M7O)#:I>V-Q.]>]+JV]<SXDJ]CWIJ9^>VP?#9HZ0WH39UU,]LO=FTI]VIVT)Q
- M$PYN;=(KX4[X:F';<&7$OUE^7WX`7[NJ;@O%E77JYAW%O_G$E;%%YSAW1,1G
- M67H^D]]N7#57V_#?=+I:>H]J;QYQT]J&9%5ZDZ$?)#?B,Y8K[96+;T%5-F@N
- MKGY'MY?JEL)/*>V'A#<QV^\/M@T>Z<58,]7%4^/-[#N76=S:I/>(YM:SY]16
- M'/=/S2VPN9<R7/E)<0MM[B6<WAS-;61S+^*X0G/KV]R+.1NRB'MY`YM;Q'`K
- M<<U*R04*]^`W>`=H;W^FYUUH<2G>K)!G"KB0I"_#)ZB\PBS);7:^IY+ZL?V.
- MS[U#MD6/+-\&FYOP@KW1-;[/?@GLO8W3>Y:G;D#(/$,];TKBH.:>S7%EGY1U
- M>TIR;R(;"G77-\[P_O3'D.0JO=J&DQQ<N;W(5&^B&ERIMS5Q3S#\D(S4+=";
- M*5?Z(5/NX6IPI;URLHWXK*[+WDRYTMY,N8>KP?7;HCIMG"FW-7%C/N/Z0Z9<
- MO]TRX?KMMB`#KDS]H,_23]I],NHS-8;J58-;NQK<O&IP?Z$VSHA[H!K<1&8V
- M*)_]GIE><UQDQ/UO-?3NUGT],I>P=9-KL<['UDM,28#N#V]*6$2X\I^<KVO)
- MLRMY`E_H%;:@V3G4FWY$Y7'P4Z(Q<6]$[G_K&-R@G]&\GD`+$P6&WH3!#>*+
- M7/I<WUB'$@?5.E2(=;L@4K>$WVXR^+G47EN2%C=!]93]01YJR1@G$>:PK["X
- MV62#W/\S<59KRUZ*LPJ;\#'DK0Q7MI&*I2-<.R;37$PC%XZ.<U4,*6QNI3RS
- M'Q_GRJ4TFFN63S5Q=;N6L5>ELB57?ANL][;PU]A;+!MT7"C[;V!O&&_:,:\N
- M0\9!X^+<:SANPF/C6#N>U]QLLRVJCOVOQCBV<7`6%/JAH\6MB[T2G^)#;LV`
- M"PYNF;(AC?';UFGT&_/\5VY=0Y_E*6X%WM`L*@YMV*7U=K'TUD)V.GT8SVCS
- M/D_'[DKTLK@U\3^=.:H<T0R;VT=2C/.^6II;\;'/!9MK^*R=W'LBMT2>FS>T
- M_3#4XMZLZM8>SY\K@C/S?`>W2''-?):9)[/S64FZ9R.+E0<30OKW,<65N2\5
- M!P3]MU%BB?PLSS+?2,?RA2,MO90O5'YX/1T[!Q]E<?/1"ITO?#&M\R*AWF<8
- MO8K[0CIVU\?FUO>"/.]+/C?+S?7UKCR:7LKS=I`Y5FF#L/OD.%6,K3?[X\RY
- M*N?^4CJ61[=S[E)3FNX(Z'QW6V]*GL^=:^GUE%YU]T!R*VVN??=`<R=I[F:;
- M6\IQBWF]]ET)S9W-<^T[&)I;RG/MNQV:NY#G+N"XTF>K_38.STN4SP+_ZOL[
- MXWBN?<>%[@4IGS'<4HM+]XV4SQBN?2='KQ>S>:Y]UX?N1RF?,5S[#A'=NU(^
- M8[@++"[=Y\H;I>\\-97]]T;P^Z]]Y\E3W/KC3*Z\_^/F[IEH<CM6R3WDW_TJ
- MD-QNBBL$STW.-KG]JM3[XSS3AMZ*FTSRW'2YR3TCORJ]:HZ6:\!I\N=P+EDK
- M?PS\FT5<N<G<$.?:=PRS0KV8^TJK@[A<A]ZFH5[,4R74&6FN0Z_FGH#Y7[FV
- ME,@Q=%%M?X]8P=3M_P%02P$"%``4````"`!D9N4@?'JXT(07``"&/```"@``
- M```````!`"``````````3553155-+E!23E!+`0(4`!0````(``L*VB`6L$T`
- M^48``#H(`0`*````````````(````*P7``!-55-%54TN34%04$L%!@`````"
- -``(`<````,U>````````
- `
- end
- ---
- Klaus Breuer, Rudelsweiher Str. 6b, 91054 Erlangen, Germany
- "Geez, I need a *reason* for everything?" -- Calvin
- "Should I or shouldn't I? Too late, I did!" -- Hobbes
-
-