BLOOD.TXT 41 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073
  1. =============================================================================
  2. BLOOD History File
  3. Copyright (c) 1994-95 Q Studios Corporation
  4. Contact: Peter Freese
  5. pfreese@qstudios.com or CIS:74170,543
  6. =============================================================================
  7. KEYBOARD FUNCTIONS:
  8. D and +/- Changes visibility
  9. G and +/- Changes gamma correction
  10. S and +/- Change player spring coefficient
  11. X jump
  12. V toggle external view (Alt-V rotates view)
  13. Z Secondary fire key
  14. C Crouch
  15. Ctrl Primary fire
  16. Alt strafe
  17. 1 - 9 Selects/deselects weapon (only pitchfork, tommy gun, shotgun
  18. for now)
  19. F1 Help (not implemented)
  20. F2
  21. F3
  22. F4
  23. F5
  24. F6
  25. F7
  26. F8
  27. F9 Quick Load
  28. F10
  29. F11 Changes gamma correction
  30. F12 Selects player view
  31. Insert Inserts fake player
  32. Delete Deletes fake player
  33. ScrollLock Selects fake player
  34. CHEAT KEYS:
  35. QSMAPS Full map
  36. QSAMMO Full ammo
  37. QSKEYS All keys
  38. QSCLIP No clipping mode
  39. QSOUCH Pummel death
  40. QSBURN Burning death
  41. QSBOOM Explode death
  42. QSRATE Toggle display of frame rate
  43. QSGOTO Go to a specific x,y location
  44. QSJUMP Jump to a particular episode and level
  45. QSHIGH Delirium mode
  46. QSONERING Inviso mode
  47. QSAIM Toggle display of aiming reticle
  48. =============================================================================
  49. 95/01/20
  50. Change the tile cache size by editing the "TileCacheSize" parameter
  51. in BLOOD.INI. (Ex. TileCacheSize=2048 will create a 2MB tile cache.)
  52. Spaces between the parameter and value are NOT supported yet.
  53. Note the icon in the upper right corner when a cache miss causes
  54. a disk access to occur. Cool, eh?
  55. Here are the monsters in the game:
  56. * Gargoyle: By far the coolest when running/jumping.
  57. * The Hand: Way cool!
  58. * Gill Beast: Cool, but sometimes humorous.
  59. * Fat Boy Zombie: Use the butcher knife!!
  60. * Jive Zombie: No attack yet, kind of weak for a weak enemy.
  61. * Phantasm: Ok, we need lots o' art for this one, but attack works.
  62. * Hell Hound: Needs major art touchup.
  63. Here are the weapons in the game (still frames with bobbing.):
  64. * Pitchfork
  65. * Tommy Gun (much better than before)
  66. * Sawed-off shotgun (Love this baby.)
  67. Next week:
  68. Animated frames for the above weapons.
  69. The NAIL GUN, yes! ($25 a day for rental...sheesh.)
  70. -----------------------------------------------------------------------------
  71. 95/02/06
  72. Sector lighting effects are now functional. See the notes in MAPEDIT.TXT for
  73. information on creating lighting effects.
  74. Global visibility is now loaded from the mpx file, although you can still
  75. change it with the V Pad+/i keys.
  76. Tiled parallaxed sky information is loaded from the MPX file (although I
  77. haven't tested this yet).
  78. Almost all errors are now caught by a global error handler. Let me know if
  79. you get any mysterious crashes. There are still asserts which will go
  80. through the monochrome monitor if you have the DEBUG environment variable
  81. defined.
  82. Multi-player network play works. Yeah! I've added synchronization checks
  83. for now which should report if any slaves get out of sync.
  84. Player movement dynamics have been overhauled. You can now "slide" sideways,
  85. spin in mid-air, crumple from a fall, and other stuff based on inertia.
  86. It's really cool.
  87. The tile cache system has been revamped. It will now attempt to allocate as
  88. large a cache as possible, up to the limit of available memory. The
  89. TileCache line in the INI file is now longer used, and can be removed.
  90. Additional dynamic allocations (such as sound effects) in the game will come
  91. from the tile cache.
  92. Dynamic fire is working again, and looks better than ever. The tile number
  93. is 2342, and needs to be added to names.h. We need a new 128x128 pic for
  94. tiles.art -- the one from Doom is 128x112.
  95. -----------------------------------------------------------------------------
  96. 95/02/13
  97. Added new weapon swaying effect that is not directly related to the head bob.
  98. Screen resizing is functional again, although there are a few problems with
  99. the shade and size of the marble background. Also, don't try resizing in
  100. 640x480 mode -- there a still some serious problems in the engine related to
  101. view sizing.
  102. 2D mapping now working in the game video mode. This should prevent problems
  103. with mode switching (especially in network play with problematic video
  104. cards). Also, we'll be able to do more cool stuff with the maps with 256
  105. colors, such as anti-aliased lines, parchment background, etc. -- we just need
  106. to figure out what we want.
  107. Zoom is no longer a player variable; it is solely a display metric now.
  108. Zoom and view size are now written to the blood.ini file.
  109. Fixed a inifile bug which caused an assertion failure if a key was not found
  110. and a section contained blank lines.
  111. Changed the way items are picked up to solve problems in picking up sprites
  112. which are not in the same sector as the player. In order to be picked up,
  113. sprites now must be on stat list 1 (kSpriteStatTouch). Sprites are
  114. automatically tagged with this status in mapedit, so you'll need to load and
  115. save all your maps.
  116. Changed location and persistence of the disk sprite which appears during
  117. cache misses. It now appears on top of the status bar to ensure it doesn't
  118. get left on the background when the view size is less than full screen.
  119. During initialization, the status messages for building the various tables no
  120. longer appear unless the tables are actually being built. If they are just
  121. being loaded, the messages do not appear.
  122. Re-enabled chaining to the old timer interrupt handler. This was previously
  123. disabled due to a bug in Ken's network code. Re-enabling it should cure those
  124. system date and time problems, as well as help with any timer dependent DOS
  125. drivers, such as disk caches.
  126. -----------------------------------------------------------------------------
  127. 95/02/14
  128. Did a major restructuring of source code. This was a sorely needed cleanup
  129. to produce organization out of a loose collection of hacks. This should make
  130. future changes and additions much easier.
  131. Blood no longer uses Ken's keyboard handler. This means functional key
  132. repeat, less key lockouts, and input stream buffering.
  133. Added support for cheat key sequences. Try QSKFA!
  134. Modified desynchronization so that animations are desynced by time, and not
  135. be frame. This means that even with only two frames, a lot of sprites of the
  136. same tile should not animation in unison.
  137. Optimized the routine for picking up sprites. The additional trivial
  138. rejection tests should speed things up a bit.
  139. Warping no longer sets velocity to zero.
  140. You should now be able to operate a platform sector from outside the sector
  141. (via neartag). Sector operation code is also optimized.
  142. Head bobbing and weapon swaying are now related to the players actual
  143. movement, not attempted movement. This means that you should be still when
  144. you are jammed up against a wall and running like hell. There is a low pass
  145. filter for the amplitude, so it should never jerk your head or the weapon. I
  146. also modified the scale for the metrics for bobbing and swaying, but I think
  147. I've got them pretty close to the way they were before. Please let me know
  148. any comments you have on the feel of these features.
  149. When you land and recover, I am now dropping the weapon a bit to simulate its
  150. inertia. I think this adds good visual cues for the landing effect.
  151. -----------------------------------------------------------------------------
  152. 95/02/15
  153. DO NOT RUN THIS VERSION IN UNCHAINED MODE. It will probably do something
  154. really horrible.
  155. Wrote new code to support tiling the background when the screen size is
  156. reduced. This is some pretty crappy code right now, and I'll probably
  157. rewrite it eventually, but for now it works except in unchained mode.
  158. Reduced horizontal swaying of weapon by 1/3. Let me know if this is enough.
  159. Added code to support DAC effects, which will be used for visual feedback for
  160. events such as one-ups, injuries, and special sector effects. I've plugged
  161. in a little flash effect for picking up items. Also, try QSOUCH for an
  162. injury effect. If the DAC effects cause any snow problems we can always
  163. switch to using palette lookups of the sort Doom uses, although this will
  164. severely limit our use of separate palette lookups for sprites, or increase
  165. the overhead in terms of the number of tables.
  166. Reduced the amount of inverse Z adjustment for looking up and down.
  167. Add QSRATE - Toggle display of frame rate.
  168. Rewrote the 2D map function so it should look just like the map in Doom.
  169. The status bar is always displayed in 2D map mode.
  170. -----------------------------------------------------------------------------
  171. 95/02/18
  172. Modified the way the DAC effects work somewhat to fix a bug which would cause
  173. the hardware DACs not to be updated when the effect was 0.
  174. Added QSGOTO and QSJUMP cheat keys.
  175. Changed key combinations for setting gamma, visibility, and spring
  176. coefficient to be compatible with those in MAPEDIT. Use +/- instead of Pad
  177. +/-.
  178. Visibility is no longer written to the BLOOD.INI file, since it is level
  179. dependent.
  180. Changed key combination to change the depth cueing (visibility) to D +/- for
  181. compatibility with MAPEDIT.
  182. Provided a workaround for the off by 4 pixel error in getzrange. This means
  183. you shouldn't pop in the air when stepping on a floor sprite at floorz level
  184. anymore.
  185. -----------------------------------------------------------------------------
  186. 95/02/19
  187. Added a module for processing command line parameters. I'm not doing much
  188. with this yet, but it's now pretty easy to handle switches and other optional
  189. arguments. The only visible change now is that when you start Blood, it
  190. defaults to map E1M1, and if you pass a level (map) name, it ignores the
  191. extension.
  192. Made a change to the way that player location and velocity is stored. This
  193. is an internal code change that shouldn't result in any visible change, but
  194. is necessary for me to write a more general purpose physics system (so any
  195. sprite can move around with inertia).
  196. Moved several constants controlling player movement dynamics out of the code
  197. and into the player posture structure. Now nearly every aspect of player
  198. movement is driven by this data.
  199. Rewrote the key handler to better provide services for getting characters in
  200. a stream type of fashion.
  201. Fixed a bug in the main drawing loop. I wasn't clearing the gotpic[] array,
  202. so once you saw the dynamic fire, it was getting calculated every frame.
  203. This easy fix should give us a nice performance boost.
  204. -----------------------------------------------------------------------------
  205. 95/03/05
  206. Projectiles have been added. Shame on Nick for not documenting them here.
  207. Fixed a bug which would cause extended keys (e.g. Page Up and Delete) to be
  208. dropped if NumLock was on. This bug was introduced when I added code to
  209. prevent filling up the keyboard buffer. These keys are actually transmitted
  210. as multiple make codes when Num Lock is on, hence the bug.
  211. Fixed a bug in the debug version of the heap. Sheesh! It would dassert out
  212. occasionally when it was unable to allocate a block when it thought it had
  213. enough memory. I wasn't subtracting out the space used for the fenceposts.
  214. -----------------------------------------------------------------------------
  215. 95/03/06
  216. Added an assertion to check for overflow of the ext arrays. I found out that
  217. some maps had sectorExt structures for nearly every sector, and were
  218. overflowing the array!
  219. Created a branding utility for limited demo versions. This utility should
  220. not be released outside of Q Studios.
  221. -----------------------------------------------------------------------------
  222. 95/03/24
  223. BUG FIXES
  224. Fixed problem with allocatepermanenttile not marking the block of memory as
  225. locked. It could get added to the purge list during precaching....
  226. Added some missing modify [...] registers to an inline function in the
  227. dynamic fire system. This would inevitably cause problems when
  228. optimizations were enabled.
  229. -----------------------------------------------------------------------------
  230. 95/04/18
  231. Changed default key codes for jump, crouching, and alternate firing to be
  232. identical to Dark Forces.
  233. Added support for view centering (default key is Alt Pad 5) when look lock is
  234. on.
  235. -----------------------------------------------------------------------------
  236. 95/04/30
  237. Added support for various screen modes now supported by the Build engine.
  238. Rewrote line clipping routine, but there are still some problems to work out
  239. in unchained mode.
  240. INI file changes are not written out until the program exits. This should
  241. minimize disk access during game play.
  242. -----------------------------------------------------------------------------
  243. 95/04/30
  244. QAV playback support added and several weapon animations now work.
  245. Trigger switches currently supported are:
  246. Toggle Switches and Momentary Switches
  247. For Momentary Switches, the "data" field can be set to indicate
  248. tenths of a second before the switch toggles back to the original state.
  249. Sectors supporting currently switches are:
  250. Topdoor, Bottomdoor, Swingdoor, and Lift
  251. Armed Proximity Bombs can now be placed and will function. More flexibility
  252. for distance and damage will be added shortly.
  253. Exploding bombs affect all "Crate Face" sprites within its proximity.
  254. MAPPERS: Make sure that you use the damaged crate face for anything
  255. that can be exploded, and don't use it anywhere else. I repeat, don't
  256. use the damaged crate face for anything except crate faces that are
  257. affected by explosions. Especially you, Richard.
  258. -----------------------------------------------------------------------------
  259. 95/05/02
  260. Fixed trigger bug with floor pads.
  261. -----------------------------------------------------------------------------
  262. 95/05/08
  263. Added panning sector effects, which now work for water current.
  264. Water movement now has drag even if there is no current. The drag is
  265. relative to the depth of the water.
  266. Rewrote/simplified trigger code. Made callbacks a command type.
  267. Added impulse to explosion projectiles.
  268. Added code to support Top door, Bottom Door, and HSplit door types.
  269. -----------------------------------------------------------------------------
  270. 95/05/08
  271. Added !state command.
  272. Sent events are now processed immediately, rather than being posted into the
  273. message queue. This allows cleaner coding for LINK commands. Be careful not
  274. to create infinite message loops!
  275. Math and palette lookup table building has been removed from the game code.
  276. These tables will now be created with stand-alone utilities.
  277. Sector lighting amplitude now honors the sector busy state, so you control
  278. light level with link commands.
  279. -----------------------------------------------------------------------------
  280. 95/05/19
  281. Added horizontal and rotation move sector types. This means sliding and
  282. swinging doors, but you are certainly not limited to these types. Use your
  283. imagination.
  284. Modified DoSectorLighting() so it is not necessary to call
  285. UndoSectorLighting() in Blood. Should speed things up just a bit.
  286. Fixed an overflow problem in 2D map mode which cause clipped lines to skew
  287. weirdly. I went through all the code and made all the multiply and shift
  288. operations use a full 64 bits of precision.
  289. Got rid of ALL the old door animation code. We are no longer unwashed.
  290. ("This house, is clean." - Nick )
  291. Kinetic sectors would never go the final distance fraction when going to the
  292. on state. The error fraction was 1/65536. I've provided a work-around for
  293. this, but the real solution is to increase the X structure busy variable
  294. size by 1 bit.
  295. -----------------------------------------------------------------------------
  296. 95/05/24
  297. WEAPONS:
  298. * Modified tommy gun.
  299. * Added first-pass shadow gun.
  300. * Added first-pass beast hands.
  301. * Added code to throw dynamite. Try blowing up the crates in MAP04.MAP.
  302. (Don't get too close or you'll set off the proximity bomb and ruin it.)
  303. * Added vector hit check and ricochet for shotgun and tommy gun.
  304. (NOTE: All the ricochets for the shotgun appear in one place for now.)
  305. LIGHTING:
  306. * New lighting effects and triggers added. Check some of them out in
  307. the sample maps.
  308. LINKED SECTORS:
  309. * You can now go underwater, but cannot go back up or move around very well.
  310. (We intend to have the water physics working by the next upload.)
  311. There's lots of other stuff, but I have to go to dinner. I'll just upload it
  312. and let you fool around. Later!
  313. -----------------------------------------------------------------------------
  314. 95/05/30
  315. Fixed view bobbing/swaying bob which caused them not to work unless you were
  316. running. Don't you just love misplaced braces? <g>
  317. Bobbing and swaying are now optional. Just added "ViewBobbing=0" to the
  318. [Options] setting of blood.ini. This should cure George's nausea.
  319. Increased strafe acceleration, and reduced angular velocity at George's
  320. request. You can also accelerate while landing now, also at his request.
  321. Can we have an equipment advance? ;)
  322. -----------------------------------------------------------------------------
  323. 95/06/24
  324. Added sequence engine which will be used for transient sprite effects and
  325. creature states.
  326. Reworked weapon selection code to allow cleaner changing between certain
  327. weapons, such as the dynamite and spray can.
  328. Added sequences for ricochets and explosions.
  329. Added the ability for explosions to chain other explosions.
  330. Added a rudimentary death sequence for cultists.
  331. Added damage/death for vector weapons.
  332. -----------------------------------------------------------------------------
  333. 95/06/26
  334. Added time delay for dynamite projectiles.
  335. Added code to put dudes affected by explosions on the projectile list, and
  336. greatly enhanced projectile code. The net result is you can blow up the
  337. creatures. "They sure blowed up _real_ good!"
  338. -----------------------------------------------------------------------------
  339. 95/07/03
  340. Converted sprite management code to use a FIFO list for proper handling of
  341. bullet holes and other purgeable sprites.
  342. Fixed problems with projectiles (including bodies) falling through floor
  343. sprites.
  344. Temporarily removed above mentioned FIFO code until I can get it working
  345. correctly.
  346. Added support for moving z of sprites on the floor of z motion sectors. This
  347. means that when the floor moves, so too should sprites that are on it. Also,
  348. no more player bouncing when you are standing on a z motion floor. The only
  349. downside is that the player will not receive any intertia from the vertical
  350. motion, so you can't 'throw' the player in the air with a fast moving floor.
  351. Changed resource system so that it uses hashing and linear probing for rapid
  352. lookup of resources. This was one of those things that had been waiting too
  353. long to be done. Now we can move forward with creating RFF (Resource File
  354. Format) archives and clearing up those directories of thousands of files.
  355. Added weapon QAV and sequence preloading. If you have enough memory, you
  356. shouldn't get ANY disk hits during game play, except for status bar graphics,
  357. which will be done shortly.
  358. -----------------------------------------------------------------------------
  359. 95/07/05
  360. Players are now impulsed by explosions. Try standing on a lit stick of
  361. dynamite!
  362. Changed the way that friction works for sliding objects. The current method
  363. is 'physically' correct.
  364. -----------------------------------------------------------------------------
  365. 95/07/08
  366. Rewrote DPMI services and code which attempts to determine how large a heap
  367. to allocate. It should now attempt to allocate less than the physical memory
  368. available, even under DPMI hosts providing virtual memory (e.g., Windows)
  369. Provided locking for nearly all interrupt handlers through new DPMI routines.
  370. This should improve the robustness of Blood under other operating systems
  371. such as Win 95.
  372. Wrote a new virtual timer services module. This allows any number of clients
  373. to install their own timer handlers with varying rates all through a central
  374. timer services handler. This is some pretty low level code, and shouldn't
  375. affect anyone but Blood programmers.
  376. Fixed a bug in the sequencer in which the first frame would not be displayed
  377. as long as it should have been.
  378. Increased dispersion for tommy gun, and increase shotgun vectors per barrel
  379. to 16.
  380. -----------------------------------------------------------------------------
  381. 95/07/09
  382. Fixed and reenabled sprite FIFO code.
  383. In Z Motion sectors, sprites on the ceiling as well as sprites on the floor
  384. will be z adjusted when the floor or ceiling moves, as appropriate. I also
  385. changed the method used to determine when to move the sprites. Previously,
  386. the code would take into account the sprite z extents to determine whether
  387. the sprite was on the floor. Now it looks only at the z value to see if it
  388. is on or in the ceiling or floor. This should provide results consistent
  389. with the type of sprite being using, i.e., sprites meant to be placed on the
  390. ceiling have their origin set at the top, and sprites meant to be placed on
  391. the floor have their origin at the bottom.
  392. Did extensive work in code for handling interactions between objects and
  393. explosions. Explosions can now be triggered (this is the way that throw
  394. sticks of TNT are handled). The impulse effect for explosions is now no
  395. longer instantaneous, but occurs over the duraction of the explosion. You
  396. can see this by watching your health while standing in range of an explosion.
  397. Sprite movement as a result of impulse still seems off, and I thinks it's
  398. because I have yet to handle sprite collisions (soon, though).
  399. Creature death sequences are determine by the type of damage which caused the
  400. death. Currently, this is supported only (in terms of art) for the fat
  401. zombie.
  402. When the fat zombie explodes, he throws off chunks of gore.
  403. -----------------------------------------------------------------------------
  404. 95/07/14
  405. Multi-player starting markers now function. Check out MAP02.MAP to see
  406. how they are inserted.
  407. Network code is semi-stable. Runs for a while then asserts out with a
  408. synchronization failure. This is probably in Ken's code, since we are
  409. getting bad or missing packets which cause the de-synch.
  410. In multi-player mode players animate in the walk sequece until they shoot,
  411. then the shooting animation stays on until they die. We are working on the
  412. AI and animation states for the players and enemies, so bear with us. At
  413. least now the players, as well as the monsters, die agonizing deaths. Shoot
  414. the fat boy for fun!
  415. Breakable walls now function. Check out the new types in MAPEDIT by pressing
  416. Alt-F6 on a red wall you want to mask and turn to a breakable wall. Similar
  417. sprite types will be added soon. Look at and shoot the stained glass in
  418. MAP19(?) which used to be QSEYMY.
  419. We try to test out as many bugs as possible before uploading a demo, but
  420. sometimes we slip up. As always, let Peter or me know if something no
  421. longer works.
  422. Lots of new artwork this upload. Better take a trip through all the art
  423. first. Look at the art using EDITART or MAPEDIT before making level or
  424. area texture changes; you may find just what you've been waiting for.
  425. -----------------------------------------------------------------------------
  426. 95/07/17
  427. Monsters now trigger OFF at death and send their command and txID.
  428. Added BloodBath (deathmatch) starts but though you can't play that mode yet.
  429. -----------------------------------------------------------------------------
  430. 95/07/20
  431. !!! MAP VERSION CHANGE !!!
  432. Once you've backed up all your maps in another directory or ZIP file, run the
  433. CONVDB5.EXE conversion utility. You can use wildcards, so typing "CONVDB5
  434. *.MAP" is acceptable. The old maps will be saved with an extension of ".MA4".
  435. Maps are now loaded as resources, which means they can be placed into
  436. BLOOD.RFF.
  437. Level definition files are loaded now along with the maps. See the sample
  438. FXTEST.DEF for an example. They can't be placed in resource files yet,
  439. though.
  440. Explosions now use an expanding sphere of influence, so they won't effect
  441. things within a possible range immediately. The closer you are to an
  442. explosion, the faster you'll take damage from it.
  443. -----------------------------------------------------------------------------
  444. 95/07/27
  445. Modified some cheat keys. Make sure your read the cheat section in this doc.
  446. Ammo can be picked up and is added to your stats. The stats are NOT displayed.
  447. Since this is still being coded, expect some funkiness with the way the weapon
  448. behaves when it has no ammo, or you pick up ammo the first time. Your best bet
  449. is to type "QSAMMO" when you first get into the game.
  450. The spear gun is all screwed up. Don't play with it, or at least don't
  451. complain if using it causes Blood to crash. ;)
  452. -----------------------------------------------------------------------------
  453. 95/07/29
  454. Lot's of new additions to the physics system. Explosions can now affect all
  455. dudes and "things", which include body parts. Everything in the physics
  456. system now has a mass, which means that lighter things can be blown
  457. farther. Have fun with the TNT and TNT barrels.
  458. Player death greatly improved.
  459. Dynamic shadows added for all dudes and things. This will be a detail level
  460. option, since it can have an impact on performance for highly populated
  461. screens. Try DEATH.MAP for a fun time. This map has around 150 combined
  462. dudes and TNT barrels in a single sector, and is a pretty good stress test.
  463. DON'T put this many things in your game maps.
  464. -----------------------------------------------------------------------------
  465. 95/08/01
  466. Temporary fix for sequence caching code that was causing "Out of memory"
  467. bailout. You will experience slower map loads and slower caching in this
  468. version. This is just _temporary_ until we have the new resource prelock
  469. code running.
  470. Added more cheat keys (listed *way* up at the top) and also fixed a bug
  471. in the QSKEYS cheat code.
  472. !!! IMPORTANT - READ THIS !!!
  473. For those of you not receiving an art update with this version, the
  474. Tommy Gun will be positioned incorrectly. This is because we have new art
  475. that you don't have yet. Since this is primarily a bug fix related update
  476. I thought it would be better not to include 6MEGS of zipped art.
  477. -----------------------------------------------------------------------------
  478. 95/08/05
  479. After a full 10 hour night of playing Blood deathmatch, we changed the
  480. following:
  481. Adjusted the dispersion for the tommy gun and the sawed off shotgun for
  482. tighter dispersal.
  483. Tweaked damage amounts for all weapons.
  484. Adjusted spray can flame speed -- if you run at full speed with it, you
  485. damage yourself!
  486. Added support for impact triggers to sprites.
  487. Changed impulse center of explosions to be optical center.
  488. -----------------------------------------------------------------------------
  489. 95/08/06
  490. Added respawning for items. Check out DONOR.MAP, which is a test
  491. deathmatch level.
  492. -----------------------------------------------------------------------------
  493. 95/08/07
  494. Shadows are now only drawn if they are below your view z. This should
  495. eliminate shadows "floating" in the air.
  496. Some code got changed which caused breakable walls to no longer change their
  497. state, hence you couldn't use them for triggering other events. This has
  498. been fixed.
  499. -----------------------------------------------------------------------------
  500. 95/08/16
  501. Thrown dynamite no longer goes through walls.
  502. -----------------------------------------------------------------------------
  503. 95/09/16
  504. * Added auto-targeting. (Does not work for missiles yet.)
  505. * Added the voodoo doll, which can hurt you if you don't have an enemy
  506. in your auto-targeting cone.
  507. * Added a test glow feature for the flare gun.
  508. * Added a ShowDetails option, which can be added to BLOOD.INI to enable
  509. or disable shadow and glow processing.
  510. * Added view mode (V and Alt-V) to view the player form a distance.
  511. * Added new status bar. (This has a some bugs when changing view size.)
  512. * Added "wall crack" object which can be used to trigger exploding walls
  513. when hit by dynamite. Check out MAP01.MAP.
  514. (BUG: Wall cracks can be damaged by other weapons, but will NOT trigger
  515. the wall explosion. Once the wall crack is taken to 0 health by a
  516. non-explosive weapon, the crack cannot be triggered. This will be fixed.)
  517. -----------------------------------------------------------------------------
  518. 95/09/20
  519. * Added the Delirium Shroom "power-up" effect. Pick up a shroom or
  520. type 'QSHIGH' to test it out. Peace!
  521. -----------------------------------------------------------------------------
  522. 95/09/26
  523. * Fixed the teleporter height bug.
  524. * Player sprites now go translucent in invisible mode. Try "QSONERING".
  525. * Voodoo doll is working, but one of the sequences is reversed.
  526. * Cultists now drop cool stuff when they die.
  527. -----------------------------------------------------------------------------
  528. 95/11/15
  529. Uh, uh, huh, huh, huh, huh. We forgot to document stuff for like 2 months, so
  530. there a billion changes that probably aren't in here. Huh, huh.... huh, huh.
  531. * Dude AI added.
  532. * New network system put in. No more sync errors.
  533. * Level music added. Create new .DEF files for your maps to hear music.
  534. * Mouse input added and updated. The mouse shouldn't diminish keyboard
  535. movement anymore.
  536. -----------------------------------------------------------------------------
  537. 95/12/18
  538. * Vases can "drop" objects when destroyed. (See the TESTxx maps.)
  539. * Timer generators added. (See XSYSTEM.TXT.)
  540. * Fireball generators added. (See the TESTxx maps and XSYSTEM.TXT.)
  541. * Padlock sprite now works. (See the TESTxx maps.)
  542. * Z Motion sprite sectors added (See the TESTxx maps.)
  543. * Linked sectors added (See PFFX.MAP: Dudes don't go through yet, but
  544. missiles and projectiles, and gibs(!) do.
  545. -----------------------------------------------------------------------------
  546. 96/01/07
  547. Saw blades are now functional. They can be turned on an off, and do damage
  548. to anyone touching when spinning. Lots of blood, too!
  549. Change player movement code so that it uses the generic MoveDude() function.
  550. This allows the player to get damaged by the saw blades and other stuff that
  551. we add later. The negative effect of this is that I have to find a new way
  552. to do the view inertia effects, so as fall crumbling, stair smoothing, etc.
  553. You may notice some change in the feel of turning, acceleration,
  554. deceleration, etc. I think it feels more responsive, but let me know if you
  555. have any complaints, and I'll try to please! You may also notice that if you
  556. run and jump against a wall, you'll bounce off it, rather than keeping your
  557. forward momentum (like those 'other' games).
  558. Players drop all their weapons when they are killed.
  559. All dudes now can move through linked sectors.
  560. Added new explosion types. There are now three concussion types of
  561. explosions. Single sticks of TNT do small explosions; bundles do medium
  562. explosions, and barrels do large explosions. Barrels may do more damage than
  563. previously.
  564. All dudes are now affected by falling damage.
  565. Improved accuracy of Tommygun cultists by allowing them to aim while they are
  566. shooting (what a concept, eh?) They are pretty brutal monsters now, so we
  567. may need to tone down the damage or ROF a bit.
  568. New aiming system in place. Specifically, the auto-aim point does not track
  569. instantly, but sort of 'homes in' on a target. If your target is standing
  570. still and so are you, you should hit your target dead on. If your target is
  571. running a serpentine pattern you may miss him a bit unless you do a little
  572. bit of targeting yourself. The rate at which the auto-aim homes in is
  573. adjustable in the code. For some weapons, such as the tommy gun, the
  574. auto-aim point gets updated while you are firing. For others, such as the
  575. sawed-off, it doesn't. What this means is that you will get a more accurate
  576. shot with the sawed-off if you wait a tiny bit between each shot rather than
  577. just holding down the fire key. There is an aiming reticle that is present
  578. for the moment so you can see how this works. It will probably be taken out
  579. for the actual game unless people decide they really like it. To enable
  580. display of the reticle, type "QSAIM".
  581. QAV playback engine enhanced. The QAV engine now uses a different metaphor
  582. to create and display animations. It is now based on fixed frames intervals,
  583. with a fixed number of layers (currently 8). This means that it is much
  584. easier to control the z-ordering of tiles, and simple to adjust the overall
  585. speed of playback. It now supports scaling and rotation of sprites, so you
  586. should see enhancements in the weapon animations. This also allows us to cut
  587. down on some of the weapon art (which is really big and takes lots of
  588. memory).
  589. Weapon code overhauled. There are now callbacks in the weapon firing QAVs,
  590. so this simplifies some of the state code in the weapon system. Damage is
  591. now incurred at the appropriate point in the firing sequence, rather that at
  592. the beginning. This improvement is particularly noticeable in the pitchfork.
  593. Automatic weapons such as the tommy gun and the spray can now have a
  594. consistent rate of fire and smoother animation.
  595. Throwing of TNT enhanced. When you throw a stick or bundle with the primary
  596. fire key it will explode on impact, making it simpler to use. It's a bit
  597. unrealistic, but, hey, it's more fun. You can control how hard you throw it
  598. but how long you hold down the fire key. If you've played Dark Forces, this
  599. should be familiar to you as the same way the thermal detonators work. If
  600. you press the Alt-Fire key you be able to "burn off" the TNT. It will light
  601. and you can hold it in your hand until you throw it or it blows up in your
  602. face, which ever comes first. You can also drop it with the Alt-Fire key.
  603. When you burn off the TNT, it will explode only when the fuse burns out, not
  604. on impact.
  605. TNT Remote Detonators enabled. If you throw the bundles, they explode on
  606. impact. If you drop them, they can be triggered with the remote detonator.
  607. You can drop multiple bundles by pressing the Alt-Fire key when you are
  608. holding just the detonator.
  609. Global physics change. The relative scale of game units to world units has
  610. been changed. One effect of this is that everything is smaller in terms of
  611. world units (they still look the same, though). Another effect is that
  612. things will appear to fall faster. You'll notice that when you jump, you
  613. don't seem to hang in the air as long.
  614. There is a new status bar. Don't count on this one sticking around too long,
  615. though. Nobody seems to like it.
  616. Fixed the problem with dudes spinning around in circles. They should now act
  617. a bit more intelligent in determining where to go.
  618. Fixed problems with running on slopes. You can now jump while moving on
  619. slopes as well. There may be some residual problems jumping if you are
  620. running on a flat area and suddenly start down a steep slope, since you will
  621. be briefly in the air, and you can't jump while falling, but that's life!
  622. Decreased the overall game processing rate, but increased how often dudes
  623. think. Hopefully, this will improve the frame rate problems on network play
  624. and slower machines.
  625. All TNT modes enabled and working. Try out the proximity bombs and remote
  626. detonators -- they're great!
  627. -----------------------------------------------------------------------------
  628. 96/01/10
  629. Fixed problems with z velocity, including bodies not falling, thrown things
  630. to fly in the air or down in the ground, and disappearing TNT.
  631. Changed gravity and restored world scale ratios to previous values. Gravity
  632. is now twice normal.
  633. Fixed problems with voodoo doll shaking like it was being held by Beavis on a
  634. caffeine high when the player stopped.
  635. Cultists now can aim up and down when shooting and throwing TNT.
  636. -----------------------------------------------------------------------------
  637. 96/01/11
  638. Added a .5 second delay between when proximity triggers are activated and
  639. when they explode.
  640. Added a slight delay when remote detonators are triggers.
  641. Fixed problem with dudes that were on over/under areas spinning around.
  642. Ken's updatesector() function wasn't taking into account z position, so I
  643. wrote a replacement that does.
  644. Tweaked axe zombie code to make them a little smarter. Now they don't go
  645. into chase mode between axe swings, so they won't creep up on you until
  646. they're forced to go past you.
  647. -----------------------------------------------------------------------------
  648. 96/01/12
  649. Sound channel manager written. This allows interface sound effects to
  650. preempt each other or layer as needed. This code layer will allow the 3D
  651. sound system to be built on top of it.
  652. -----------------------------------------------------------------------------
  653. 96/01/13
  654. Basic 3D sound system in. The system does distance attenuation, but is not
  655. yet dynamic, and doesn't support stereo or phasing. Just a few sound effects
  656. are in (switch, breaking pottery, breaking glass), but it does support
  657. relative volume for each sound, which allows the samples to be as hot as
  658. possible.
  659. -----------------------------------------------------------------------------
  660. 96/01/14
  661. More significant work on 3D sound code. It now supports stereo volume and
  662. phase effects. Still yet to do are dynamic updating of position and
  663. frequency shifting.
  664. Added some player sound effects for jumping, landing, falling, and pushing on
  665. things which don't trigger.
  666. -----------------------------------------------------------------------------
  667. 96/01/19
  668. Sound system now supports fixed and dynamic 3d sound effects. Fixed location
  669. sounds use "bonkles" (see Meaning of Liff), which are automatically recycled
  670. when the sound is complete. Dynamic sounds are 1 per xsprite, and preempt
  671. each other automatically.
  672. Many new sound effects added, and existing sound effects changed to use
  673. bonkles where appropriate.
  674. Dispersion of Tommy gun increased.
  675. -----------------------------------------------------------------------------
  676. 96/01/22
  677. Added flares burning in guys.
  678. -----------------------------------------------------------------------------
  679. 96/01/24
  680. Player no longer stutters when injured (this was a particular problem when
  681. burning).
  682. Vector weapons (including melee weapons) now produce a ricochet and sound
  683. effect appropriate for what they hit. Try stabbing various types of surfaces
  684. and objects with the pitchfork to hear this -- really cool. Also, listen to
  685. the sounds of bullets ricocheting of walls and things when you are being
  686. shot.
  687. -----------------------------------------------------------------------------
  688. 96/01/25
  689. Weapons tweaked for damage: spray flame, shotgun, tommy gun.
  690. Starbust flare added in alt fire for flare gun.
  691. New fonts added for messages.
  692. Added auto aiming for TNT barrels.
  693. Added gaussian grouping for player shotgun vectors.
  694. Reduced sizes of TNT explosions.
  695. -----------------------------------------------------------------------------
  696. 96/01/28
  697. Credits screen roughed in with new font.
  698. General optimizations to code, and tweaks made to improve 3D sound system.
  699. Keyboard control code modified to make it much more like Doom. Hopefully
  700. I've got it right this time. Turning uses a two-step threshold for
  701. rotational velocity, and player (and dude) movement use drag rather than
  702. friction to slow down.
  703. -----------------------------------------------------------------------------
  704. 96/01/30
  705. Added diving suit mask, with (detail option) translucent reflections.
  706. -----------------------------------------------------------------------------
  707. 96/02/01
  708. Major optimization to Ken's cansee() function, which was taking up around 20%
  709. of execution time (in worst cases). This new optimization speeds it up by
  710. about 50%, which is quite noticeable.
  711. -----------------------------------------------------------------------------
  712. 96/02/02
  713. MAJOR COOL NEW FEATURE! Vector masking for masked walls and face sprites!
  714. What this means is that objects and walls can be partially blocking of
  715. bullets depending on their shapes. For example, you can shoot through the
  716. bars of a grate, but still be able to hit the grate itself. This is still
  717. pretty unoptimized, so expect some potential speed hits -- also, there's
  718. loads of debugger output.
  719. Debris gibs added. These are pretty rudimentary for now, but we'll be adding
  720. tables for all the different types of debris soon. Currently, when dudes
  721. explode, they spawn 20 little "worm" giblets.
  722. -----------------------------------------------------------------------------
  723. 96/02/03
  724. Drip generators changed so that spawned drips start at the bottom of the
  725. sprite, rather than the z center.
  726. Parallaxed skies now preload correctly.
  727. Re-enabled falling for all things and dudes, and also optimized the z motion
  728. calculations. The result is that all things now fall properly, and the frame
  729. rate is back where it is supposed to be.
  730. Optimized vector masking so it only happens for vector weapons. This
  731. prevents is from slowing the AI down. We still need to add a replacement for
  732. hitscan to test for arbitrary blocking bits. I'll be asking Ken about this.