MAPEDIT.TXT 61 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462
  1. =============================================================================
  2. MAPEDIT History File
  3. Copyright (c) 1994-95 Q Studios Corporation
  4. Contact: Peter Freese
  5. pfreese@qstudios.com or CIS:74170,543
  6. =============================================================================
  7. ================
  8. 2D EDITING MODE:
  9. ================
  10. HIGHLIGHTING:
  11. The mouse cursor will highlight the nearest object within a specific
  12. threshold (see MAPEDIT.INI). The selected object will flash, and any
  13. XObject information will be displayed in the lower panel. Key
  14. operations in 2D will apply to the selected object.
  15. SPRITES:
  16. --------
  17. Sprites have various shapes in the overhead map, depending on
  18. their attributes:
  19. * Face sprites are cyan circles with a line extending from
  20. the center to indicate their angle. (ref. '<' and '>')
  21. * Thick sprites have the blocking attribute set. (ref. 'B')
  22. * Purple sprites have the hitscan attribute set. (ref. Ctrl-H)
  23. * Sprites with three or four lines extending from the circle
  24. are wall sprites. The shorter lines indicate which sides are
  25. visible. (ref. 'R' and '1' in 3D mode keys.)
  26. * Sprites with square centers are floor sprites, and can be
  27. manipulated with all the keys referred to above.
  28. WALLS:
  29. ------
  30. This section not complete.
  31. MOUSE FUNCTIONS:
  32. ----------------
  33. Mouse Move mouse cursor
  34. LeftButton Click and hold on an endpoint to drag.
  35. See RightShift and RightAlt for other options.
  36. To delete an endpoint, drag that point into the
  37. next point and it will be deleted. (NOTE: Grid-locking
  38. must be enabled. See 'L' key below.)
  39. RightButton Click to change the 3D view cursor position.
  40. RightShift Press and hold to highlight endpoints and sprites in
  41. a rectangular region. Release the key once the chosen
  42. region is highlighted. Drag objects in the highlighted
  43. area by clicking and holding the left mouse button
  44. down and then dragging the mouse. Release the left
  45. mouse button to drop the objects at the target
  46. position. Press RightShift without dragging the mouse
  47. to deselect the highlighted objects.
  48. RightAlt Highlight sectors for duplication or dragging. Similar
  49. in operation to the RightShift key, this key
  50. highlights entire sectors and the sprites within them.
  51. See the Insert key for information on duplication.
  52. KEYBOARD FUNCTIONS:
  53. -------------------
  54. Arrows Moves the 3D view cursor position. The cursor will be
  55. clipped against blocking wall and sprite boundaries.
  56. Press the right mouse button to move the 3D view
  57. cursor to a different position on the map.
  58. ESC Brings up the menu. Press ESC again to cancel.
  59. PadEnter Toggle between 2D and 3D editing modes
  60. SpaceBar Press the space bar when drawing new sectors. There
  61. are several ways of drawing new sectors. The
  62. following three ways of drawing sectors can all be
  63. done by only using the space bar. The application is
  64. "smart" enough to decide which method you are using.
  65. 1. Drawing a FULL LOOP - that is, whenever the new
  66. sector meets the old sector, draw over that line
  67. again. In full loop mode the new sector must not
  68. already be in another sector. The loop is done
  69. when you press the space bar at the first point
  70. again.
  71. 2. SPLITTING a sector - press space bar to draw points
  72. at which you want to split a sector. The computer
  73. knows you are done splitting when you end at
  74. another point that's on the edge of the sector you
  75. are splitting.
  76. 3. Drawing a sector COMPLETELY INSIDE another sector.
  77. (for example, columns) To do this, just press space
  78. bar at every point in the loop. The loop is done
  79. when you press the space bar at the first point
  80. again.
  81. Backspace
  82. Deletes previously plotted point during sector creation. Press
  83. repeatedly to get rid of all previously plotted points.
  84. Insert Inserts a new endpoint at the midpoint of the highlighted
  85. line. Then you can drag the point to wherever you like. (If
  86. you insert on a red line, the point will be inserted on both
  87. sides of the sector line.) If a bunch of sectors are selected
  88. (see right ALT) then instead of inserted points, the selected
  89. sector bunch will be duplicated (stamped). Don't forget to
  90. drag the selected sectors after stamping.
  91. Delete Use this to delete sprites. Do NOT delete marker sprites
  92. created by the XSYSTEM. Instead, change the sector type.
  93. NOTE: To delete endpoints from a line, DON'T PRESS DELETE.
  94. Instead, drag the endpoint onto a neighboring endpoints, while
  95. the grid is on. If the endpoint is dragged exactly on top of
  96. the neighboring endpoint, it will automatically be deleted.
  97. Right Ctrl-Delete
  98. This deletes the whole sector that the mouse cursor is in. Use
  99. this option with caution as it has been know to cause problems
  100. in maps.
  101. ScrollLock
  102. Set editing starting position (reddish arrow) to your current
  103. position (white arrow). Also used to define the default player
  104. starting positions, but level designers are expected to place
  105. player starting marker sprites in all maps.
  106. NOTE: Eight co-op and eight deathmatch markers must be placed
  107. on all maps. (ref. Alt-S, 3D MODE EDITING)
  108. TAB View attributes of the sector under the cursor.
  109. AltTAB View attributes of the wall or sprite closest to the cursor.
  110. A/Z Zoom the 2D view in and out. Text tags may disappear when the
  111. view is zoomed out. Zoom in to view them again. (ref. Ctrl-T)
  112. B Toggles blocking attribute of walls and sprites. A blocked
  113. wall or sprite will with a thick line in 2D EDIT MODE. See
  114. the description for 'B' in the 3D EDIT MODE section for more
  115. details.
  116. C Turn a line into a circle defined by short line segments.
  117. Press 'C' on a highlighted wall, and move the mouse cursor to
  118. change the arc of the circle. Press '+' or '-' to change the
  119. number of line segments in the circle. Press 'C' again to
  120. cancel circle creation, or SpaceBar to accept the changes.
  121. (NOTE: Grid size affects the position of the arc. Refer to 'G'
  122. and 'L' below.)
  123. E Change a sprite's status list number. Level designers should
  124. not have to change a sprite's status directly, unless a bug is
  125. reported when running the game.
  126. G Change grid resolution. The grid resolution cycles through the
  127. following sequence:
  128. * Off : no grid
  129. * 1x : 64x64 pixel grid
  130. * 2x : 32x32 pixel grid
  131. * 4x : 16x16 pixel grid (* DEFAULT *)
  132. * 8x : 8x8 pixel grid
  133. * 16x : 4x4 pixel grid (Has wall texturing problems.)
  134. * 32x : 2x2 pixel grid (Has wall texturing problems.)
  135. Use the two finest grid resolutions only for positioning
  136. sprites. Wall vertices should not be closer to each other
  137. than the grid lines at 8x resolution.
  138. H Edit the high tag for the sector under the cursor.
  139. Alt-H Edit the high tag for the wall or sprite under the cursor.
  140. (See also: T and Alt-T. Level designers should not edit these
  141. fields directly, as they are used internally by XSYSTEM.)
  142. Ctrl-H Toggle the hitscan sensitivity of a sprite or masked wall.
  143. Objects which are hitscan sensitive can be hit be vector
  144. weapons.
  145. L Turns grid locking on or off. If the mouse cursor is pink then
  146. grid locking is on. If it is white then grid locking is off.
  147. There is no grid locking if the grid is turned off. Also,
  148. grid locking will lock to nearby points.
  149. J Join two neighboring sectors. Press J when mouse cursor is
  150. over the first sector. Then press J again when the mouse
  151. cursor is over the neighboring sector. The attributes of the
  152. combined sector will be taken from the first sector selected.
  153. K Mark a wall or sprite for motion
  154. (blue = forward motion, green = reverse motion)
  155. M Make a wall masked
  156. S Places a sprite at the location under the mouse cursor. Refer
  157. to the SPRITES section (above) for more information.
  158. Alt-S Convert internal white sector (single-sided linedef) to a red
  159. sector (double-sided linedef). Ctrl-Delete can be used to
  160. reverse this. (NOTE: Outer loop cannot be converted!)
  161. T Edit the low tag for the sector under the cursor.
  162. Alt-T Edit the low tag for the wall or sprite under the cursor.
  163. (See also: H and Alt-H. Level designers should not edit these
  164. fields directly, as they are used internally by XSYSTEM.)
  165. Ctrl-T Toggle the text captions for sectors, walls and sprites.
  166. < | > Rotate a Sprite: Rotation has a precision of 2048 degrees, and
  167. sprites can have an angle value range of 0 to 2047. Pressing
  168. the shift key allows a finer degree of rotation.
  169. Rotate a Sector: Sectors highlighted with RightAlt can also be
  170. rotated using these keys.
  171. [ | ] Rotate a sprite without wrapping. Generally used for marker
  172. sprite rotation, allowing marked sprites to rotate several
  173. times throughout a busy cycle. If you don't understand this,
  174. talk to Peter.
  175. F5 Display sector specific data
  176. F6 Display sprite/wall specific data
  177. Alt-F5 Edit sector specific data in the editing dialog.
  178. Alt-F6 Edit sprite/wall specific data in the editing dialog.
  179. While in the editing dialog, the following keys are active:
  180. Esc Exit dialog and abandon changes
  181. Enter Exit dialog and save changes
  182. Left Previous control
  183. Sh Tab Previous control
  184. Right Next control
  185. Tab Next control
  186. Up Increase value by 1 or move radio button up
  187. Pad + Increase value by 1
  188. Down Decrease value by 1 or move radio button down
  189. Pad - Decrease value by 1
  190. Pg Up Increase value to next multiple of 10
  191. Pg Dn Decrease value to next multiple of 10
  192. Space Toggle check boxes
  193. F10 Get next unused channel (rxID and txID only)
  194. ================
  195. 3D EDITING MODE:
  196. ================
  197. CapsLock change zmode
  198. Tab Copy to buffer
  199. Enter Paste buffer
  200. Sh Enter Paste shade and palette
  201. Ctrl Enter Paste tile to all walls in loop
  202. Sh Ctrl Enter Paste tile, shade, and palette to all walls in loop
  203. Alt Enter Copy attribute (extra) information
  204. < Rotate sprite CW
  205. Sh < Fine rotate sprite CW
  206. > Rotate sprite CCW or auto fix wall panning
  207. Sh > Fine rotate sprite CCW
  208. / Set x and y repeat to default values
  209. Sh / Set sprite x repeat to match y repeat
  210. 1 Toggle 1 sides sprites and 1 way walls
  211. 2 Toggle bottom wall swapping
  212. Pad +/- Brighten / darken texture
  213. Ctrl Pad +/- Set texture to max/min brightness
  214. Pad 0 Set texture to 0 brightness
  215. Pad arrow Adjust tile repeats
  216. Ctrl Pad arrow Adjust tile panning
  217. PageUp Raise z by 4 pixels
  218. Sh PageUp Raise z by 1 pixel
  219. Alt PageUp Enter new floor or ceiling height
  220. Alt PageDn Enter new floor or ceiling height
  221. Ctrl PageUp Put sprite on ceiling /
  222. Move floor or ceiling to next higher neighbor Z
  223. PageDn Lower z by 4 pixels Sh PageDn Lower z by 1 pixel
  224. Ctrl PageDn Put sprite on floor /
  225. Move floor or ceiling to next lower neighbor Z
  226. Delete Delete sprite
  227. B Toggle blocking
  228. Alt C Change all tiles matching buffer to target
  229. D -/+ Adjust depth cueing level
  230. E Toggle expansion of floor/ceiling texture
  231. F Flip texture
  232. Alt F Turn on relative alignment in the highlighted sector.
  233. If already on, change the first wall in the sector.
  234. Relative alignment affects textures or slopes.
  235. G -/+ Adjust gamma level
  236. Alt G Change Global palette
  237. H Hitscan sensitivity for masked walls AND sprites.
  238. L Light bomb
  239. M Toggle maskable wall
  240. Sh M Toggle single side maskable wall
  241. O Toggle orientation or post sprite on wall
  242. P Toggle parallaxing for floor or ceiling
  243. Ctrl P Change sky parallaxing type
  244. Alt P Change palookup
  245. R Toggle floor/ceiling relative alignment or change sprite
  246. rotation type
  247. S Insert sprite
  248. T Toggle translucency
  249. V Select tile
  250. Alt V Select heightmap
  251. W Change lighting effect waveform
  252. F2 Toggle state
  253. F3 Show sector OFF z position
  254. Alt F3 Capture sector OFF z position
  255. F4 Show sector ON z position
  256. Alt F4 Capture sector ON z position
  257. F9 Auto stair builder. Highlight a group of sectors,
  258. then point to an adjoining sector floor or ceiling
  259. and press F9. The floor or ceiling you point to will
  260. be the lowest step.
  261. F11 Enable/disable panning
  262. F12 Toggle beeps
  263. Ctrl Alt - | + Decrease/Increase sector visibility
  264. Ctrl - | + Decrease/Increase light effect amplitude
  265. Shift - | + Decrease/Increase light effect phase
  266. [ | ] Change floor or ceiling slope
  267. \ Remove floor slope
  268. -----------------------------------------------------------------------------
  269. 94/12/18
  270. This document created. I have renamed BUILD.EXE to MAPEDIT.EXE. I hope
  271. this will prevent confusion between Ken's version and our version for Blood.
  272. Also, this allows changes specific to MAPEDIT to be documented independently.
  273. For maximum viewing pleasure, this document is formatted at 78 characters
  274. wide, tab stops of 8, and contains no upper ASCII characters.
  275. MAPEDIT supports loading custom palette remap and translucency tables. It
  276. looks for NORMAL.PLU and TRANS.TLU in the currect directory. If they are
  277. present, it will use them; if not, it will use the defaults in PALETTE.DAT.
  278. I am phasing out the CNT files and replacing them with MPX (MaP eXtension)
  279. files. This files store all the Blood specific information for sprites,
  280. walls, and sectors. The CNT files were a hack to test out adding custom edit
  281. controls to BUILD. I don't think anyone was using them for anything, but
  282. just in case you were, MAPEDIT will automatically convert the CNT files and
  283. remove them when you save changes.
  284. For a discussion of the various fields and their meanings, see the
  285. TRIGGERS.TXT document.
  286. At present, only the sprite editing fields are active. Wall and sector
  287. editing will be completed shortly.
  288. -----------------------------------------------------------------------------
  289. 94/12/28
  290. Completely replaced Ken's keyboard handler with my own. This will allow key
  291. repeat to work for all functions, so now you can just hold down the pad plus
  292. key to lighten a sprite, etc. This also gives me the ability to add new
  293. functionality at will, without waiting for Ken to add a new function. To
  294. this end, I've added stub code for Alt-P while in 3D mode. Currently, this
  295. just gives you the tile selection screen, but it will be used for editing
  296. tiled parallaxing skies.
  297. An assertion failure that would occur when an invalid reference was noted
  298. between a map and an mpx file has been changed. The invalid reference will
  299. now be simply deleted. This allows you to delete the mpx file if you want to
  300. trash all the additional map data.
  301. -----------------------------------------------------------------------------
  302. 94/12/30
  303. Due to some problems discovered in trying to handle keystrokes from within a
  304. secondary ISR (Ken's code doesn't handle it well, and I can't work around it
  305. because his functions are not reentrant), I've adopted a new strategy for
  306. adding to key functions. I'm still using my own keyboard handler, so you'll
  307. still get the benefit of key repeat.
  308. I'm now 'subclassing' Ken's editinput() function by renaming his function to
  309. kensinput() by directly modifying the object file. This is a true hack, but
  310. it should work cleanly. However, I'll need to make the same change to future
  311. versions of build.obj unless I can convince Ken to make a similar change.
  312. Just to prove that it works, I've added a few extra key functions for 3D
  313. mode:
  314. Alt-L while the cursor is on a sprite will set the sprite's shade to -42 (the
  315. maximum brightness without side effects).
  316. Alt-0 while the cursor is on a sprite will set the sprite's shade to 0. This
  317. should cause the sprite to have the same shade as the sector it is in (good
  318. for floor and ceiling sprites).
  319. I was going to add a function to build stairs automatically, but some of
  320. Ken's variables for handling highlighted sectors are static and I can't
  321. access them. I'll try to get him to change this and add this in a later
  322. version.
  323. -----------------------------------------------------------------------------
  324. 95/01/02
  325. Make sure you run CONVMAP6 on ALL your maps. The easiest (DOS) method
  326. to accomplish this is to type:
  327. for %1 in (*.map) do convmap6 %1
  328. Peter implemented a raw auto stair builder. Create your stair sectors in
  329. 2D mode, without (unnecessarily) changing the heights in 3D mode. In 2D mode,
  330. use the R.Alt key to select all the stairs you want to auto-height adjust.
  331. In 3D mode, point to a sector outside the selected stairs that you want use
  332. as the base height for the stairs and press F9. Enter the stair height in
  333. pixels. Use 8 or 12 pixels or risk death by immolation; other stair heights
  334. will be too tall to walk over. Expect more cool additions in the future!
  335. Peter made changes to the width of the character, as well as height at
  336. which things can be walked over. If you notice any peculiarities let him
  337. know.
  338. Peter has also added sector lighting effects to BUILD, but they have not
  339. been documented. Also, they don't work in Blood yet, but will very soon.
  340. The next update you get will be probably executables only.
  341. Note from Nick: Try to make your bonus, one-up and weapon sprites
  342. non-blocking. Thanks!
  343. -----------------------------------------------------------------------------
  344. 95/02/06
  345. Key handling has changed (again), and is now much cleaner, thanks to the
  346. changes Ken made to his code during his visit with us. I'll no longer have
  347. to keep hacking build.obj.
  348. Along with Ken's changes, a bug crept in which would cause F5-F8 to crash if
  349. you pressed them in 3D mode. This has been fixed.
  350. Sector lighting effects are now functional and work in Blood as well. You
  351. can edit them in 2D mode or 3D mode. See the new keys documented above. I
  352. may be making another change in the implementation of sector lighting to
  353. allows walls to be modified, but this shouldn't affect sectors which you have
  354. already worked on, so bang away on this feature.
  355. The MPX format has been enhanced again. It now contains version information,
  356. so should be easier to update periodically. Older format files are
  357. automatically converted when loaded. With this new version, you'll be able
  358. to add author name and level name to the mpx files (editing not yet
  359. implemented, though.) Global visibility is now saved in the mpx file and
  360. properly loaded in Blood.
  361. You can now tile parallax skies. See the new keys documented above.
  362. -----------------------------------------------------------------------------
  363. 95/02/08
  364. Updated sector shading effects code. Instead of storing the base floor and
  365. ceiling shade, the MPX structure now has a single field which is the
  366. current relative shade. By adding and subtracting this offset, it is
  367. possible to do relative shading effects to floors, ceilings, and walls
  368. without extra storage. The only overhead is some additional processing time,
  369. since I now call DoSectorLighting() and UndoSectorLighting() once per frame.
  370. The sectorExt dialog now has checkboxs for shading floors, ceilings, and
  371. walls, so it is possible to apply lighting effects to any or all of these.
  372. Also, for lighting effects to take place, the sector status must be ON. I'm
  373. going to get the message system working Real Soon Now, and the first thing
  374. I'll test is turning on and off lighting effects.
  375. A major bug was fixed in the code that ensured referential integrity between
  376. the sprite, sector, wall and respective Ext structures. I believe that this
  377. was THE bug that was causing the occasional weird sector lighting values.
  378. Please let me know ASAP any other problems of this nature.
  379. When loading maps, all item and creature sprites are automatically
  380. sized to their proper x and y repeats. This is intentional, and will ensure
  381. uniformity between levels. There is no such thing as a miniature zombie!
  382. Sprite Ext structures are automatically added for creatures when maps are
  383. loaded. This adds the proper type and view flags based on picnum.
  384. -----------------------------------------------------------------------------
  385. 95/02/14
  386. Did a major restructuring of source code. This was a sorely needed cleanup
  387. to produce organization out of a loose collection of hacks. This should make
  388. future changes and additions much easier.
  389. Fixed a problem with the IncBy and DecBy inlines functions which caused
  390. weird step values when you used the PageUp and PageDn keys in dialogs.
  391. -----------------------------------------------------------------------------
  392. 95/02/18
  393. Parallax sky tiling should be working again. I had an incorrect assumption
  394. about the way pskybits works. I thought it represented the width of the sky
  395. tiles, but it actually indicates the number of tiles. Go figure.
  396. I've assigned the ext editing functions to the Alt combinations of F5 and F6
  397. instead of F7 and F8. I'm limited to F5-F8 in 2d mode for adding features,
  398. so I'm going to overload these keys for all their worth. Prepare for the
  399. worst.
  400. Rewrote initialization code so that it uses the same module as Blood. You'll
  401. now see the same initialization diagnostic messages in both. This means that
  402. MAPEDIT also uses the same gamma correct and sin tables as Blood, and loads
  403. information from the BLOOD.INI file.
  404. MAPEDIT loads the gamma correction from and writes changes to the BLOOD.INI
  405. file. Do not use F11 to change the gamma level. Instead use the G +/-
  406. combination, the same as in Blood. The gamma level is displayed momentarily
  407. when changed.
  408. Changed key combination to change the depth cueing (visibility) to D +/- for
  409. compatibility with BLOOD.
  410. -----------------------------------------------------------------------------
  411. 95/02/18
  412. Fixed a bug in the key handler which caused the (G)oto command to stop
  413. working in the tile selection screen. The solution was to change the key
  414. combination for this to Alt-G. Essentially, anything you used G for
  415. previously, use Alt-G for now (except setting gamma correction).
  416. -----------------------------------------------------------------------------
  417. 95/02/27
  418. This version includes a substantial rewrite of ALL 3D editing keys. Please
  419. report anything that's not working as it should.
  420. PageUp and PageDn in 3D mode now support fine movement (1 pixel) and coarse
  421. movement (4 pixels). Use shift for fine movement. It did this before, but
  422. not correctly all the time due to the way I was intercepting the keys.
  423. Sprite fine z adjustment now works for highlighted sprites. Coarse z
  424. adjustment now moves to the next multiple of 4 pixels, rather than in steps
  425. of 4. You can no longer move a floor above a ceiling or vice versa.
  426. Fixed coarse sprite rotation so it moves to the next multiple of 256.
  427. Fine rotation now moves to the next multiple of 16 instead of 1.
  428. Changed screen capture key to PrintScreen. Now I can use F12 for something
  429. more useful.
  430. You can no longer wrap shades by going too dark or too light. Shades are now
  431. correctly clipped at their max values.
  432. Changed keys for setting shade to 0, min, or max. The key combinations for
  433. setting texture brightness are now Ctrl Pad + for max brightness, Ctrl Pad -
  434. for min brightness, and Pad 0 for 0 brightness. I would have done this
  435. originally, but I couldn't without rewriting a fair amount of the 3d editor
  436. code (which I now have done). These key combinations now present a
  437. consistent metaphor: Pad +/- is exclusively used for brightness; and Control
  438. in combination with a step key sets a min or max.
  439. Fixed a bug in which any sprite inserted that had a tile height of 32
  440. pixels or more would automatically be set to blocking. It will now
  441. automatically set sprites to blocking only if there is something other than a
  442. sprite in the tab buffer.
  443. Added some clicks and beeps for feedback. Let me know if they are too
  444. annoying.
  445. Ctrl Enter on a parallax floor or ceiling will now paste to ALL parallaxed
  446. floors or ceilings, not just neighboring sectors.
  447. The key to auto adjust panning will no longer change orientation of any
  448. walls. This means that some walls will not automatically be aligned, but you
  449. would have had to fix these walls anyway.
  450. This version of MapEdit includes a new 2D animation editor. You start this
  451. editor by using F7. See the new animator editor keys documented at the top
  452. of this file. Call me if you need help. Level designers do not need to use
  453. this tool. The animation editor will probably not work in unchained mode or
  454. screen buffer mode. Try it in these modes at your own risk. You have been
  455. warned, Nick!
  456. -----------------------------------------------------------------------------
  457. 95/03/05
  458. Fixed a bug which would cause extended keys (e.g. Page Up and Delete) to be
  459. dropped if NumLock was on. This bug was introduced when I added code to
  460. prevent filling up the keyboard buffer. These keys are actually transmitted
  461. as multiple make codes when Num Lock is on, hence the bug.
  462. Fixed a bug in the debug version of the heap. Sheesh! It would dassert out
  463. occasionally when it was unable to allocate a block when it thought it had
  464. enough memory. I wasn't subtracting out the space used for the fenceposts.
  465. MapEdit now uses our heap and resource caching system, so it should lurch
  466. less.
  467. I replaced the gettile() function, so now tile histories for walls, ceilings,
  468. floors, masked walls, face sprites, and flat sprite can all be maintained
  469. independently. Tile selection should now be significantly faster.
  470. -----------------------------------------------------------------------------
  471. 95/03/06
  472. Added an assertion to check for overflow of the ext arrays. I found out that
  473. some maps had sectorExt structures for nearly every sector, and were
  474. overflowing the array!
  475. -----------------------------------------------------------------------------
  476. 95/03/24
  477. BUG FIXES
  478. Fixed problem with allocatepermanenttile not marking the block of memory as
  479. locked. It could get added to the purge list during precaching....
  480. Added some missing modify [...] registers to an inline function in the
  481. dynamic fire system. This would inevitably cause problems when
  482. optimizations were enabled.
  483. Fixed the hang on exit problem. Ken's unintengine function was closing
  484. STDIN. Replaced his function to fix.
  485. -----------------------------------------------------------------------------
  486. 95/03/26
  487. Fixed a bug with adjust x and y repeats of wall textures (you couldn't). You
  488. can now also match x and y repeats by pressing shift / on a wall.
  489. Added preliminary light bomb.
  490. -----------------------------------------------------------------------------
  491. 95/04/02
  492. When switching between 2D and 3D mode, I now do a reference check for all ext
  493. structures. This will ensure that any editing done in 2D mode is
  494. reflected immediately in 3D mode.
  495. Ctrl-Enter will no longer copy shade or palette values. If you want to copy
  496. shade and palette values to every wall in a loop, use Shift-Ctrl Enter. Note
  497. that the previous function of Shift-Ctrl Enter has been removed.
  498. -----------------------------------------------------------------------------
  499. 95/04/07
  500. MAJOR FORMAT CHANGE. This version requires you to run CONVDB3 on all your
  501. maps. This new format eliminates the need for separate MAP and MPX files,
  502. and adds many new fields, support for which will be added *soon*.
  503. You can now adjust the floor or ceiling z of a red sector from outside the
  504. sector. Just point to one of the walls and press page up or down. This new
  505. feature makes it easy to open closed vertical doors.
  506. Increased angle resolution of light bomb. Expect it to be about twice as
  507. slow.
  508. -----------------------------------------------------------------------------
  509. 95/04/07
  510. BUG FIX. There was a problem which resulted in an incorrect file CRC if you
  511. deleted sprites and then saved. I wasn't checking the statnum of sprites
  512. which had an attached xsprite.
  513. BUG FIX. If you started MAPEDIT and created a new map, all sectors would have
  514. an extra field of 0 instead of -1. This caused an assertion failure when you
  515. tried to enter 3d mode. This is a kenbug which I worked around by
  516. initializing all extra fields to -1. There is still a problem if you create a
  517. new map after editing another map. When you add sectors, they will get extra
  518. references to old xsectors, xwalls, and xsprites, respectively.
  519. BEHAVIOR CHANGE. The program now automatically adds xsprites for all sprites
  520. and sizes them correctly before saving.
  521. -----------------------------------------------------------------------------
  522. 95/04/07
  523. BUG FIX. All extra fields of 0 are now set to -1 on loading. I'll fix this
  524. nasty bug yet!
  525. BUG FIX. Hooked my unitialization routine into exit so that keyboard
  526. interrupt and timer rate gets restored, even on crashes. This should cure
  527. the occasional and bothersome runaway clock.
  528. -----------------------------------------------------------------------------
  529. 95/04/18
  530. Separated code for tile selection into it's own module.
  531. Made the sequence editor use the new tile picking code.
  532. -----------------------------------------------------------------------------
  533. 95/04/31 - NCN
  534. BUG FIX. Fixed a bug that screwed up masked walls. MAPPERS: You may not have
  535. seen this bug since it occurred in an interim version.
  536. The H key now toggles the hitscan value in 3D mode for sprites as well as
  537. masked walls. Use Ctrl-H in 2D mode.
  538. The Alt F key combo was added in 3D mode to change the relative alignment of a
  539. sector. Press it once to make a sector relative aligned. The key may be
  540. pressed again (and again) to change the first wall in a sector. To check which
  541. is the first wall, press TAB in a sector and note the first wall number, then
  542. press Alt-TAB on each wall to figure out which one it is.
  543. IMPORTANT NOTE: Only use Alt-F in sectors NOT containing other sectors!
  544. Added crude menus to sector dialog. To edit an extended dialog box,
  545. highlight one of the menu selections and press Enter. When you are done
  546. editing in the extended dialog box, press Enter to save the dialog changes
  547. and return you to 2D editing mode. If you wish to go back to the menu,
  548. press Escape. Any changes you have made will be held until you either press
  549. Enter again, or press Escape to abort any changes you have made.
  550. Added a txID verification key to the sector and sprite trigger dialog boxes.
  551. When the txID field is highlighted, enter a number and press the '?' key. This
  552. will tell you whether the txID you entered is used and by what. I intend to
  553. expand on this for the rxID field and add the same features to the wall
  554. dialog.
  555. Added wind currents to sectors. There are now 8 hard-coded wind levels, which
  556. are selectable by changing the wind field in the sector dialog. If the field
  557. is 0, then no wind is generated in that sector.
  558. Added water current data to sectors, which can be edited in the sector dialog.
  559. First select a water depth from 0 to 3: 0=no current, 1=tread, 2=wade, 3=swim.
  560. Next select the speed and angle. If a sector has relative alignment set, the
  561. initial current angle will be determined by the angle of first wall in the
  562. sector, and the 'angle' field will is added to the wall angle.
  563. Added key support for certain sector effects. Change the key field in a sector
  564. to indicate that the sector requires a key to operate.
  565. MAPPERS: We will be moving from the tag system to the new extended system, a
  566. few effects at a time. Please watch for changes in my maps and this text file
  567. to show you which effects have changed. Some things, like one-shot triggers,
  568. don't work yet, but set the fields anyway for compatibility and so you
  569. won't have to go back and edit them later. For now, you should be able to go
  570. back through all your maps and make switches and keys function, and that
  571. should eat up a few days. Good luck!
  572. Check out the following sector types: Lift, Swingdoor, Topdoor,
  573. Bottomdoor, and Floor Pad. Use my example TRIGGERS.MAP to figure some of it
  574. out, or call me if you need to. Eventually we'll have docs explaining how this
  575. stuff works.
  576. -----------------------------------------------------------------------------
  577. 95/05/02 - NCN
  578. Fixed trigger bug with floor pads. Check out the expanded physical trigger
  579. flags for sprites and sectors. MAPPERS: Make sure the following things are
  580. applied to your maps: 1) All switches should be non-blocking with the
  581. Push and/or Impact triggers set. 2) Door sectors currently need the Push
  582. flag set. This will change as soon as wall triggers are done. 3) Lifts will
  583. need the Push flag set to function while the player is in the sector, unless
  584. a switch is installed at the top and bottom of the lift, either inside or
  585. outside the shaft, up to you. The switch sprite will not move with the lift.
  586. You can use the physical triggers with ANY sector type, including NORMAL.
  587. Physical triggers for sectors of type NORMAL will not change state when
  588. the trigger is activated. The "only once" trigger now works with the NORMAL
  589. type of sector. Expect the same additions to all sector types soon.
  590. BUGS/PROBLEMS:
  591. * Lifts no longer work when the action key is pressed while inside,
  592. though they will activate if you are next to them. This will be fixed
  593. in the next version.
  594. * Wall flags are still not implemented. Expect them also in the next
  595. version. These will be used to signal door sectors to open.
  596. NOTES:
  597. * Shrink all switches to 40x40. I'll try and add this in next MAPEDIT.
  598. * Shrink all gargoyle statues to 40x40. Same deal.
  599. * Shrink all chairs to 40x40. Okay, this one too.
  600. -----------------------------------------------------------------------------
  601. 95/05/07
  602. When relative sector alignment is set with Alt-F, flipping and xy swapping is
  603. cleared. This should fix water current problems.
  604. -----------------------------------------------------------------------------
  605. 95/05/08
  606. Added new fields to sector effects dialog. Redid all dialogs in character
  607. coordinates and tightened up display. Non-tab control now are highlighted.
  608. Add F2 to toggle state in 3D mode.
  609. -----------------------------------------------------------------------------
  610. 95/05/10
  611. Added display of wave form when 'W' pressed in 3D mode.
  612. Modified xsector and xsprite dialogs to access new waitTime and busyTime
  613. fields. These fields control the speed of door movement (time in .1 secs),
  614. and the delay before reset (time in .1 secs). If your doors or momentary
  615. switches don't seem to be working, check the values in these fields.
  616. Added xwall dialog.
  617. -----------------------------------------------------------------------------
  618. 95/05/12
  619. Provided a workaround for a memory allocation bug which would cause the
  620. editor and blood to hang in any mode which required screen buffering. This
  621. workaround will NOT work in stereo display modes -- I need an engine update
  622. from Ken to fix this.
  623. -----------------------------------------------------------------------------
  624. 95/05/19
  625. Added trouble-shooting section at top.
  626. -----------------------------------------------------------------------------
  627. 95/05/24
  628. Added lots of great new stuff that will be documented shortly. Take a look at
  629. the sample maps to see how most of the effects are accomplished. You will
  630. notice that MAPEDIT has changed significantly.
  631. BLUE "SPRITES" are controls for SLIDE type sectors, and come in pairs. GREEN
  632. "SPRITES" are controls for ROTATE type sectors.
  633. Use the controls to make rotating and sliding doors or other gimmicks. If you
  634. delete a control accidently it will be reinserted, though the angles and
  635. position are not retained. Sorry. Don't delete controls by accident. :)
  636. Here is a mini-tutorial on how things work, please run the maps then look at
  637. them before you post a bunch of questions. Everything should be the same for
  638. raising and lowering sector doors.
  639. For a swinging door:
  640. * Create a red-line sector for a door and raise it to the height you want it.
  641. * NOTE: Doors should be created in the OPEN position.
  642. * Use AltF5 to select a sector type of "Rotate" in the sector dialog.
  643. * WARNING: Do NOT select the "Swing door" type. It won't work.
  644. * Set the triggers, keys, and busyTime/waitTime EFFECTS in the same dialog.
  645. * NOTE: A green control is automatically inserted (visible in 2D mode only!)
  646. * Place the control on the pivot point of the sector.
  647. * Change the angle of the green control to point right. O---->
  648. * Now, adjust the angle of the green control to be the angle it needs rotate
  649. to OPEN from the CLOSED position. This is a bit confusing but you'll get
  650. the hang of it. Look at the swinging doors in MAP01-MAP04.
  651. For a sliding door:
  652. * Okay, I'll send this to you guys in e-mail. There is a simple example in
  653. MAP01.MAP. Look for the BLUE ARROW. Yes! The blue arrow points in the
  654. direction of movement. (Let the other teams try and beat that!)
  655. More on sliding doors later, as well as morphing walls. For now just
  656. experiment with triggers and slide/rotate walls. Good luck.
  657. -----------------------------------------------------------------------------
  658. 95/05/28
  659. Changed code that automatically inserts marker sprites so they start out at
  660. angle 0. O----> This only effect markers in rotate sectors.
  661. -----------------------------------------------------------------------------
  662. 95/05/29
  663. Added combination switches. These are multi-way switches which change to the
  664. ON state when their data field equals the value set in lotag. The sprite's
  665. hitag contain the number of values that the switch will cycle through. These
  666. switches can be used for combination locks, or even counters. See my map
  667. FXTEST for examples of both.
  668. Changed the way that slide sectors work so you only need to tag the walls
  669. that you want to move, and the code figures out which vertices need to be
  670. updated. No more stretching wall bullshit.
  671. Added support for sprite link messages so a master combination switch can
  672. control slave switches.
  673. -----------------------------------------------------------------------------
  674. 95/05/30
  675. Created MAPEDIT.INI for storing various edition options.
  676. Fixed an overflow problem which could cause long lines to be unselectable.
  677. Overhauled line selection so it is zoom dependent, and controlled by a
  678. configurable distance threshold, HighlightThreshold in [Options] of
  679. MAPEDIT.INI.
  680. Fixed a lot a subtle problems in the light bomb, which would cause certain
  681. reflections to be calculated incorrectly. I also (hopefully) eliminated
  682. problems with overflow in the ray tracing algorithm. Sometimes fixed point
  683. math sucks. You can control various aspects of the light bomb through
  684. configuration options in MAPEDIT.INI.
  685. Changed Ctrl-Shift-Enter so it only pastes shade and palette to all walls in
  686. a loop. Previously, it would copy over textures as well. This is the way
  687. that I really intended it to work.
  688. -----------------------------------------------------------------------------
  689. 95/05/31
  690. YES! I think I found a solution for maintaining marker sprites that will
  691. ensure references don't get hosed. In level designer terms, this means you
  692. won't occasionally lose slide or rotate markers.
  693. -----------------------------------------------------------------------------
  694. 95/06/01
  695. This time I _really_ think I've fixed the marker sprite problem. There
  696. shouldn't be any changes required to your maps, and the marker sprites should
  697. stay put. Let me know any problems ASAP.
  698. -----------------------------------------------------------------------------
  699. 95/06/02
  700. Moved troubleshooting section to the new XSYSTEM.TXT file, which will
  701. document the trigger system, sector, wall, and sprite effects, and other
  702. crucial information for level designers. This file will continue to document
  703. editor changes, but won't discuss specific aspects of effects.
  704. -----------------------------------------------------------------------------
  705. 95/06/04
  706. Fixed a mouse selection problem which would cause the wrong texture to be
  707. copied instead if the mouse was at an extreme edge of the screen. The bug is
  708. in Ken's code, so the only thing I can do is limit the mouse in by a pixel
  709. from all the edges.
  710. You can now use PageUp and PageDn on the lower wall of a bi-textured wall to
  711. move a red sector up and down.
  712. Player height is now identical in MapEdit and Blood. Just remember to put
  713. your switches lower in areas where the player will be in the water.
  714. Added sector visibility keys: Press CtrlAlt+ and CtrlAlt- to change the
  715. sector visibility values. Don't abuse this feature or Nick will kill you.
  716. -----------------------------------------------------------------------------
  717. 95/06/04
  718. ========================================================================
  719. !! READ THIS FIRST !! (please)
  720. ========================================================================
  721. Save ALL of your maps before running the new conversion utility.
  722. Once you've saved your maps in another directory or ZIP file, run the
  723. CONVDB4.EXE conversion utility. You can use wildcards, so typing "CONVDB4
  724. *.MAP" is acceptable.
  725. Next, run "MAKEPLU 64 96" before viewing, editing or playing any maps.
  726. ========================================================================
  727. * From now on all Door, Lift and moving stair types should be created using
  728. the "Z Motion" sector type. (These are automatically converted when CONVDB4
  729. is run on version 3.x maps.) The Z values cannot yet be viewed in the 2D
  730. dialogs, but are displayed when created or changed in 3D mode. NOTE: Lift
  731. types will be converted, but you must manually go in and set on and off Z for
  732. each of them. Sorry. It was this, or linking the entire engine into the
  733. converter, or wasting time rewriting code.
  734. To create and set the default on and off Z values for a "Z Motion" sector:
  735. First, make the sector a "Z Motion" sector using the Alt-F5 dialog.
  736. Position the sector ceiling and floor heights where you want them to be when
  737. the sector is in the OFF position. For doors, it is easiest to make OFF the
  738. CLOSED position. Point at the Z Motion sector (ceiling, floor, adjacent
  739. non-white wall, or interior white wall) and press Alt F3 to set the OFF Z
  740. values. Pressing Alt F3 will set the Z values for both the ceiling and floor,
  741. so you don't have to press it twice.
  742. Now position the ceiling and floor heights where you want them to be when the
  743. sector is in the ON position. (Best in the OPEN position.) Point at the "Z
  744. Motion" sector and press Alt F4 to set the ON Z values. Again, this only has
  745. to be done once, as it will autmoatically set the ceiling and floor ON Z
  746. values with one keypress.
  747. To view the positions, point at the sector with the mouse cursor, hold the
  748. left mouse button down and press F3 and/or F4 to view the OFF and ON Z
  749. values, respectively.
  750. * New graphics for the pod creature and rat have been added, but they don't
  751. have MAPEDIT values in place. That means their captions won't yet show up in
  752. 2D mode, nor will they be sized correctly.
  753. * Dialogs have changed a bit, and will change more in the future. At least
  754. this time they all look more alike. Live with it.
  755. -----------------------------------------------------------------------------
  756. 95/06/13
  757. Changed 3D movement so you are no longer blocked by the ceiling in sectors
  758. with parallaxed skies. Moving way 'up there' can give you an interesting
  759. perspective on (and hopefully new ideas for) your map.
  760. Rewrote the GUI. You probably won't see any significant visible changes, but
  761. please report any problems.
  762. -----------------------------------------------------------------------------
  763. 95/06/30
  764. Added menu to insert game objects. From now onw, press Alt-S instead of S to
  765. insert game object sprites. You can still use S for ornaments like torches,
  766. weeds, etc. NOTE: Hazard insertion is not done yet.
  767. If you have not already done do, run CONVDB4 on all your maps. You should
  768. then load and save *every* map to reset the object types. The only sprites
  769. that are converted in MAPEDIT (during loading and saving) are listed below.
  770. If you have a creature sprite not using one of these tiles, fix it
  771. immediately or risk certain death.
  772. # Name Creature
  773. 896 kAnmPhantasmM1 Phantasm
  774. 1170 kAnmZomb1M1 AxeZombie
  775. 1270 kAnmHellM2 HellHound
  776. 1280 kAnmHellM1 HellHound (also)
  777. 1370 kAnmZomb2M1 FatZombie
  778. 1470 kAnmGargoyleM1 FleshGargoyle
  779. 1530 kAnmGargStatue FleshGargoyle Statue
  780. 1570 kAnmGillM1 GillBeast
  781. 1595 kAnmGillM2 GillBeast (also)
  782. 1745 kAnmRatM1 Rat
  783. 1792 kAnmPodM1 GreenPod
  784. 1797 kAnmTentacleM1 GreenTentacle
  785. 1835 kAnmEelM2 Eel
  786. 1870 kAnmEelM1 Eel (also)
  787. 1920 kAnmSpiderM1 RedSpider
  788. 1948 kAnmBatM2 Bat (sleeping)
  789. 1950 kAnmBatM1 Bat (flying)
  790. 1980 kAnmHandM1 Hand
  791. 2680 kAnmCerberusM1 Cerberus
  792. 2820 kAnmCultistA1 TommyCultist *
  793. 2860 kAnmCultistM1 ShotgunCultist *
  794. -----------------------------------------------------------------------------
  795. 95/07/03
  796. Maps of version 4.00 are auto converted to version 4.01. The conversion
  797. involves adjusting the z position of wall and face sprites to handle the new
  798. origin alignent mode.
  799. Added new lighting type, Flicker3. This is a mostly on, flakey flourescent
  800. light sort of flicker effect.
  801. Added our tile preloading code from Blood to MapEdit, so you should have less
  802. lurching due to tiles not being in memory.
  803. -----------------------------------------------------------------------------
  804. 95/07/08
  805. Rewrote "O" code to paste sprite onto a wall. Let me know if you still have
  806. occasional problems ornamenting sprites (where it won't go onto the wall).
  807. -----------------------------------------------------------------------------
  808. 95/07/09
  809. Fixed a problem where marker sprites would occasionally get converted to
  810. other sprite types if they had a picnum which got recognized by Nick's
  811. conversion code.
  812. Improved performance of 2D display code by eliminating unnecessary math for
  813. non-displayed red walls.
  814. Now that sprite FIFO code is working, the insertsprite cover function now
  815. sets all new sprites to the following defaults:
  816. sprite[].cstat = kSpriteOriginAlign;
  817. sprite[].shade = 0;
  818. sprite[].pal = 0;
  819. sprite[].clipdist = 32;
  820. sprite[].xrepeat = 64;
  821. sprite[].yrepeat = 64;
  822. sprite[].xoffset = 0;
  823. sprite[].yoffset = 0;
  824. sprite[].picnum = 0;
  825. sprite[].ang = 0;
  826. sprite[].xvel = 0;
  827. sprite[].yvel = 0;
  828. sprite[].zvel = 0;
  829. sprite[].owner = -1;
  830. sprite[].lotag = 0;
  831. sprite[].hitag = 0;
  832. sprite[].extra = -1;
  833. This should help cure some of the problems caused by sprites being inserted
  834. with bogus values in the fields.
  835. Renabled CRC checking for loaded maps. Let me know if you have any problems
  836. in loading some of your converted maps.
  837. ALERT! Ken made some clipping fixes to the engine which may cause sprites
  838. that are exactly on the wall to be non-visible. This is especially true with
  839. red walls. Changed the ornament function ("O" or "S" while pointing at a
  840. wall) so that sprites are offset from walls by 1/4th a pixel distance. You
  841. should go through your maps and re-ornament all walls. Unfortunately,
  842. there's not an easy way to do this automatically.
  843. Ornamented sprites are set by default to non-blocking and 1 sided.
  844. All dudes (creatures) are set to non-blocking and non-hitscan in the editor.
  845. This makes it a lot easier to move around in 3D mode. Don't worry, the
  846. status bits are automatically set to the appropriate values in the game.
  847. -----------------------------------------------------------------------------
  848. 95/07/17
  849. Fixed a bug with ammo names. Load and save all your maps. We apologize for
  850. this inconvenience.
  851. -----------------------------------------------------------------------------
  852. 95/07/20
  853. !!! MAP VERSION CHANGE !!!
  854. Once you've backed up all your maps in another directory or ZIP file, run the
  855. CONVDB5.EXE conversion utility. You can use wildcards, so typing "CONVDB5
  856. *.MAP" is acceptable. The old maps will be saved with an extension of ".MA4".
  857. This update adds fields necessary for implementing creature AI. You'll see
  858. fields added to the XSprite dialog shortly.
  859. Fixed a bug in the code to auto align wall textures -- it would occasionally
  860. get caught in a loop and bail out after a certain number of iterations. Now
  861. it should correctly detect when it is looping around walls.
  862. You can now press F10 while editing the rxID and txID fields, and it will
  863. automatically fill in the next unused channel.
  864. Object type is now stored in the former lotag field, and object mass is
  865. stored in the former hitag field. Do NOT edit lotag or hitag manually.
  866. Fixed a crash bug that would occur if you pressed Enter in 2D mode while a
  867. wall was not highlighted.
  868. Optimized the sectorofwall() function, which probably won't make much of a
  869. difference to anybody.
  870. -----------------------------------------------------------------------------
  871. 95/07/27
  872. * Added Ctrl-PgUp / Ctrl-PgDn support (3D mode) for sectors / walls
  873. =============================================================================
  874. When pointing at single-sided walls, the ceiling of the sector is modified.
  875. When pointing double-sided walls, the sector ceiling or floor on the other
  876. side of the highlighted wall is modified.
  877. Ctrl-PgUp will set the highlighted sector ceiling to the next higher neighbor
  878. ceiling z, or floor to the next higher neighbor floor z.
  879. Ctrl-PgDn will set the highlighted sector ceiling to the next lower neighbor
  880. ceiling z, or floor to the next lower neighbor floor z.
  881. * Added Alt-PgUp / Alt-PgDn support (3D mode) for sectors / walls
  882. =============================================================================
  883. When pointing at single-sided walls, the ceiling of the sector is modified.
  884. When pointing double-sided walls, the sector ceiling or floor on the other
  885. side of the highlighted wall is modified.
  886. Alt-PgUp will bring up a dialog box where you can manually type in the pixel
  887. height of the ceiling or floor from its counterpart.
  888. In other words, if you Alt-PgUp on a floor, you can type in the floor's
  889. height from the ceiling. If you Alt-PgUp on a ceiling, you can type in the
  890. ceiling's height from the floor.
  891. Alt-PgUp and Alt-PgDn work the same way. If you can think of a cooler way to
  892. do this, let me know.
  893. Since not all of the monsters are selectable in 3D mode using the Alt-S object
  894. menu, use Alt-S to first insert the closest monster (e.g. flesh gargoyle
  895. instead of a stone gargoyle) then go into 2D mode and use AltF6 on the sprite
  896. then select a new type. This should be fixed soon, when all the monster types
  897. will be selectable through a list box.
  898. -----------------------------------------------------------------------------
  899. 95/08/01
  900. Fixed bug with sector joining. This bug was caused by us while trying to fix
  901. a bug in the build.obj editor code that wasn't checking for invalid sectors
  902. and walls when joining sectors. We still have the error checking code in, but
  903. we the check is less strict than it was, since the strict check was causing
  904. the code to bail out before joining sectors.
  905. -----------------------------------------------------------------------------
  906. 95/08/02
  907. Added what is hopefully the final fix for the resource/map caching problems
  908. we were experiencing on machines with > 8MB. All map changes should be now
  909. be flushed correctly, and the maps should reload without a problem.
  910. Ctrl-Alt-Plus & Ctrl-Alt-Minus:
  911. Made sector visibility keys work with sector highlighting, so you can now
  912. highlight sectors with the RightAlt key in 2D mode, then go to 3D mode and
  913. change the visibility of all highlighted sectors.
  914. -----------------------------------------------------------------------------
  915. 95/08/03
  916. Fixed hitscan blocking
  917. Added 3D mode messages to wall and sprite x/y repeat keys.
  918. Added 3D mode messages to wall x/y panning keys.
  919. Added some new sample maps and a sample map definition file.
  920. -----------------------------------------------------------------------------
  921. 95/08/04
  922. Reverted to the previous keyboard method of handling sub-dialogs. To exit
  923. from the sector effects sub-dialog and save changes, press ENTER. To return
  924. to the xsector dialog, just press ESC. Sorry for the inconvenience.
  925. -----------------------------------------------------------------------------
  926. 95/08/06
  927. Added respawning for items. Check out the sprite dialog using AltF6.
  928. Monsters and barrels do not respawn yet, but they will soon.
  929. -----------------------------------------------------------------------------
  930. 95/08/07
  931. MapEdit is now MUCH faster in 2D mode, at the expense of a little memory
  932. overhead. The speedups should be particularly noticeable in maps where there
  933. were a lot of captions being displayed.
  934. -----------------------------------------------------------------------------
  935. 95/08/08
  936. Tile #457 has been removed. Use tile #356 with palette 5 to emulate #457.
  937. We apologize for this inconvenience
  938. -----------------------------------------------------------------------------
  939. 95/08/09
  940. Added support for moving only marked walls and sprites within motion sectors.
  941. To mark a wall or sprite for motion, press the "K" key while highlighting the
  942. object in 2D mode. When the object is blue, it will move forward (in the
  943. direction of the movement arrow, or the angle direction of the axis marker).
  944. When it is green, it will move in the opposite direction.
  945. You can also mark sprites for motion in Z Motion sectors. If the sprite is
  946. blue, it will move with the floor. If it is green, it will move with the
  947. ceiling.
  948. Change the key for marking walls for motion from "M" to "K". This was
  949. done to allow setting walls to masked in 2D mode with the "M" key. This
  950. change actually occured a few revs back, but I forget to document either key
  951. -- sorry.
  952. Changed the color of marker sprites to green/yellow to yellow/white to
  953. distinguish them from sprites marked with "K". Marker sprites normally
  954. appear yellow. If the cursor is in the sector they apply to, they are shown
  955. in white.
  956. There are now three different types of slide and rotate sectors. The first
  957. type, Slide Marked and Rotate Marked, will move only marked walls and
  958. sprites. The second type, Slide and Rotate, will move ALL walls and marked
  959. sprites. This is useful for sectors where you don't want to mark all the
  960. walls individually. The third type, Slide Crush and Rotate Crush, isn't yet
  961. implemented, and acts like the move ALL types.
  962. -----------------------------------------------------------------------------
  963. 95/08/16
  964. You can now rotate sectors more than 180 degrees! Use the [/] keys to rotate
  965. a sprite in 2D mode without wrapping at 0 and 2048. All axis markers
  966. for doors which rotate CCW are automatically set to negative angles. You'll
  967. understand how this works when you take a look at the markers.
  968. Slide sectors can rotate! Just set the start and end angles in the on and
  969. off marker sprites. Rotation will occur around the center, as determined by
  970. the relative position of the ON marker.
  971. -----------------------------------------------------------------------------
  972. 95/08/16
  973. Added and refined descriptions at the top of this document, mainly duplicating
  974. material from the older BUILD.TXT file.
  975. -----------------------------------------------------------------------------
  976. 95/08/20
  977. Updated Alt-S game object insertion to use new keys, weapon and dude tiles.
  978. -----------------------------------------------------------------------------
  979. 95/08/22
  980. Added mirrors to our game. Supports up to 64 mirrors per level. Mirrors
  981. cannot reflect other mirrors, so keep them far apart. Mirrors are created
  982. using a 1-way masked walls on red lines (double-sided linedefs.) The area
  983. behind the mirror must be the same size and shape as the area in front of
  984. the mirror. Apply the "mirror" texture (I think #504) to 1-way walls to
  985. make them a mirror.
  986. -----------------------------------------------------------------------------
  987. 95/08/29
  988. *** CONFIDENTIAL! DO NOT DISCUSS THE FOLLOWING UPDATE! ***
  989. We've added slopes to our game. Slopes will be in Blood, Duke,
  990. Ruins & Shadow Warrior. The 3D mode keys used to add or modify
  991. slopes are listed above. See [, ], \, and Alt-F
  992. -----------------------------------------------------------------------------
  993. 95/09/05
  994. Added hazards and miscellaneous sprites to the Alt-S menu. Check out
  995. inserting coop mode starting positions in the Misc menu. NOTE: Inserting
  996. switches using this menu isn't working yet.
  997. Added simple one-way teleporters to the editor. Create a teleport sector and
  998. a teleport marker will be inserted. Move that teleporter to the destination.
  999. For two-way teleporters, create the same at the destination and drag the
  1000. marked to the first teleporter. Switched teleporters may work, but I haven't
  1001. tested them yet. This could make for some interesting deathmatch play where
  1002. you need a temporary ally.
  1003. -----------------------------------------------------------------------------
  1004. 95/09/10
  1005. Modified the way that Alt-F key works. You can now select the first wall of a
  1006. sector by pointing at it in 3D mode and pressing Alt-F. Pointing at the floor
  1007. or ceiling and pressing Alt-F will make the first wall the next wall in
  1008. clocking order.
  1009. You can disable all panning with the F11 key. This is useful for aligning the
  1010. textures of panAlways sectors and walls.
  1011. -----------------------------------------------------------------------------
  1012. 95/09/15
  1013. When you insert a new sprite, if a sprite is not already in the tab buffer,
  1014. you are given the opportunity to pick the tile for the sprite. Pressing
  1015. Escape will allow you to abort the sprite insertion. The ability to abort
  1016. also applies to inserting game objects with Alt-S.
  1017. The Light bomb has been fixed. Because some of the math has been changed,
  1018. you will need to update some of the constants in your MAPEDIT.INI file. Here
  1019. are my default constants:
  1020. [LightBomb]
  1021. Intensity=4 ; controls how bright the light is
  1022. Reflections=3 ; maximum number of reflections
  1023. Attenuation=0x0000 ; how much light gets diminished
  1024. MaxBright=-4
  1025. Intensity controls how bright the light source is. You can increase this
  1026. value if you don't like pressing L a lot to brighten up a room, but you won't
  1027. get as much fine control with it then.
  1028. Reflections is the number of times each light ray is allowed to bounce. If
  1029. this value is 0, no reflections are calculated (and the process is much
  1030. faster). More reflections can help by creating more diffuse lighting
  1031. effects.
  1032. Attenuation controls how much the light is diminished when it reflects off a
  1033. wall or floor. A value of 0 is a perfect reflection, and a value of 0x10000
  1034. would result in non-reflective walls.
  1035. MaxBright sets the limit on how bright the light bomb is allowed to make a
  1036. wall. By prevent the wall shade from getting too bright, you retain the
  1037. ability to see some of the dynamic sector lighting effects, which won't be
  1038. visible is the shade is too much < 0.
  1039. Texture alignment code overhauled! I think this new version should do
  1040. everything you could want it to do (with reason). It now follows multiple
  1041. paths, aligning everything connected with the same texture perfectly. It
  1042. aligns red walls correctly, regardless of where the texture is pegged, and
  1043. even knows about slopes. You will be amazed. :-)
  1044. For the sake of speed and congruity, I changed the key strokes for adjusting
  1045. wall x/y repeat and x/y panning. The arrows on the numeric keypad now
  1046. adjust the panning of wall textures by a factor of 8. If you want fine
  1047. alignment, use the Shift key (sound familiar?) To adjust the wall scale,
  1048. press the 5 key on the numeric keypad while pressing the arrows. This change
  1049. should make it a little easier to manually adjust texture panning, since you
  1050. won't have to hold so many darn keys down.
  1051. For those of you with ingrained editor habits (or who have to use BUILD for
  1052. other projects), you can retain the old keypad behavior by adding the
  1053. following to the [Options] section of your MAPEDIT.INI file:
  1054. [Options]
  1055. OldKeyMapping=1
  1056. This works the same way except for sprites, in which the function of the pad
  1057. 5 is reversed. I did it this way because you seldom (if ever) need to adjust
  1058. the x/y offset of sprites.
  1059. -----------------------------------------------------------------------------
  1060. 95/09/16
  1061. Added a timer event generator to the sprite type list. See the
  1062. appropriate section in XSYSTEM.TXT.
  1063. -----------------------------------------------------------------------------
  1064. 95/11/26
  1065. Fixed a rather subtle but NASTY map screw up bug which would occur if you tried
  1066. to use Alt-F on a ceiling or floor of sector 0. I intruced this bug when we
  1067. went to the new map version. Sorry about that. :-( If you are curious what
  1068. caused this, I made wall->point2 an unsigned value, not realizing that it can
  1069. go negative during wall order rotation.
  1070. -----------------------------------------------------------------------------
  1071. 95/12/27
  1072. Modified dialog boxes, adding new fields like interruptable, lock, etc.
  1073. Added dude-specific flags to the sprite dialog box.
  1074. -----------------------------------------------------------------------------
  1075. 96/01/07
  1076. Fixed sprite insertion and z movement functions so that sprites will go on
  1077. floors and ceilings correctly.
  1078. Changed '/' key so that is resets flip bits for floors and ceilings.
  1079. Changed Alt-C so that it will change palookups if the picnum is the same in the
  1080. tab buffer.
  1081. Fixed an assertion bug that would occur when dragging highlighted points.
  1082. -----------------------------------------------------------------------------
  1083. 96/01/16
  1084. Added WaterDrip generator code.