home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume9 / umoria3 / part07 / OChanges
Encoding:
Text File  |  1990-05-21  |  54.3 KB  |  987 lines

  1. :::::1987 Fixes:::::
  2. 87 fixes deleted, see the 4.85 or 4.87 sources
  3. :::::1988 Fixes:::::
  4. 88 fixes deleted, see the 4.88 sources
  5. :::::1989 Fixes:::::
  6. ---------------------  2/26
  7. all files: merged the umoria and PC-Moria sources
  8. creature.c: get_moves(), 12 numbers were wrong for monster movement
  9. wizard.c: a few more int to bigint_t changes needed in wizard mode commands
  10. files.c: fix columns in monster dictionary so that everything lines up
  11. misc2.c, moria2.c: line up columns for print_new_spells() and examine_book()
  12. 8 files: replace == with = in comments and strings
  13. magic.c, misc1.c, misc2.c, moria2.c, signals.c: missing/misplaced breaks
  14. monsters.c: 2 grey snakes, renamed one to green
  15. misc1.c: compact_objects, stmt which decrements cur_dis in wrong place
  16. spells.c: disarm_all should not set traps to zero, should just clear trap
  17.     bits
  18. moria2.c: in jamdoor() i_ptr->p1 should be t_ptr->p1
  19. moria2.c: in place_trap(), covered pits should transform to open pits
  20. moria2.c: mon_take_hit(), int i should be bigint_t i
  21. io.c: more prompt will now accept space/escape/return/linefeed
  22. io.c: EOF code did not work on machine with unsigned characters
  23. ------------------------ 2/27
  24. save.c: missing controlz calls on error returns
  25. creature.c: don't let non-moving creature move if glyph prevented it
  26.     from attacking
  27. creature.c: give monsters a chance to recover from Bash, depends on
  28.     square of monster level
  29. moria2.c: give monsters a chance to ignore bash, function of hitpoints 
  30.     and level
  31. spells.c: fixed restore_level, needed while loop
  32. moria2.c: monster_multiply(), i=18 statement in wrong place, would not
  33.     always multiply monster when it should
  34. --------------------- 3/2
  35. moria1.c: get_panel(), add one to y and x on lines 945/950, prevent scrolling
  36.     while inside rooms
  37. --------------------- 3/9
  38. wizard.c: tmp_val = -999; for gold changed to tmp_lval
  39. signals.c: added SIGXCPU to list of signals that cause panic save
  40. spells.c: call monster_name before mon_take_hit in fire_bolt()
  41. moria2.c: move_char (), stop before attacking a creature
  42. dungeon.c: added move_char (5) to see_infra and see_invis setting and clearing
  43. --------------------- 3/10
  44. creature.c: added take_hit (0, ddesc) line to every monster spell, ensure
  45.     that player leaves resting/find/search modes
  46. potions.c: remove chp += mhp code from gain const potion, now chp = mhp
  47. moria2.c: change monster_death(), summon_object 4d2 instead of 4d3
  48.     so that comments match code
  49. creature.c: make_move(), prevent monster from moving again after opening
  50.     a door, also, make chance of opening locked door dependant on monster
  51.     level
  52. monsters.c: giant red ant lion, not hurt by fire, move&attack normally
  53. --------------------- 5/5
  54. generate.c: fixed error in generation of type 3 (subtype 3) rooms
  55. misc2.c, config.c: added alternate wizard code/definitions
  56. treasur1.c: restore mana potion made more valuable (35 -> 350)
  57.         staff of speed value increased   (800 -> 1000)
  58.         ring of sustain charisma level changed (7 -> 44)
  59.         ring of stupidity level decreased  (20 -> 7)
  60.         potion of gain strength value increased  (200 -> 300)
  61. variable.c: halfling clan elder had 0% chance
  62.         gave warrior higher base to hit chance than paladin
  63. store1.c: digging tools must be identified before price is adjusted
  64. misc1.c:  do not adjust cost of digging tools based on value of p1
  65.       change all mods to fields toac/todam/tohit to be += or -=
  66.       several items (mostly cursed items) needed %P1 added to name
  67.       for digging tools, inc p1 instead of replacing it, so that tools
  68.          will still have same minimum values as specified in treasur1.c
  69. monsters.c: Forest Wight should be able to open doors.
  70.         Grey Wraith should not drain mana
  71. moria1.c: fix stealth so that it uses the value of p1
  72. treasur2.c: change 'a's to '&'s for doors
  73. spells.c: word of destruction should not put wall over character
  74.       Could not use wand of drain life at a distance
  75. moria2.c: when in find mode, attack if run into creature only if can't see it
  76. -------------------------5/7
  77. moria1.c,moria2.c: remove heavy weapon message from test_hit and put it in
  78.   py_attack instead
  79. spells.c: teleport_away now calls unlite_spot if necessary, fixes bug that
  80.     I thought had been fixed 3/28/88
  81. save.c: for MSDOS: when restore save file, must search object list for secret
  82.     doors/traps, and convert the '#/.' char to wallsym/floorsym, when save 
  83.     file, must do the reverse translation
  84. spells.c: unlight_area() was really messed up, is much shorter now, will
  85.     always print "darkness" message now if it should
  86. misc1.c: cleaned up prt_map(), probably much faster now
  87. moria1.c: cleaned up light_room(), draw_block(), sub2_move_light(),
  88.     they are probably much faster now
  89. all:  changed print(char *, int, int) to print(char, int, int) in io.c
  90. misc1.c: crown of the magi, now has RL instead of see invisible
  91. ---------------------- 5/8
  92. all: checked uses of fm/pl/tl for consistency, eliminate extra parens/tests/etc
  93. death.c: changed call to exit(1) to exit_game instead,
  94. io.c, dungeon.c: new function move_cursor_relative to position cursor on map
  95. --------------------- 5/13
  96. Moria.doc: added changes to bring it up-to-date, ran through Spell again
  97. --------------------- 5/18
  98. spells.c: polymorph monster spell incorrect, missing an else flag = TRUE line
  99. moria2.c: fix setting of reset_flag in find mode in move_char() routine
  100. Moria.doc: created MacWrite version for Macintosh, plus some more editing
  101.     corrections
  102. --------------------- 5/29
  103. death.c, externs.h, files.c, io.c, misc2.c, moria2.c: eliminated the function
  104.     pad, replaced most calls with printf %-30s formats
  105. death.c: rewrote fill_str and renamed it to center_string, previously was
  106.     returning pointer to local variable
  107. death.c: eliminated dprint, replaced it with calls to put_buffer
  108. signals.c: suspend handler now saves/restore special local chars (^R, ^W, etc)
  109. generate.c: rewrote blank_cave, should be a bit faster now
  110. externs.h, io.c, misc1.c, variable.c: eliminate used_line array, no longer
  111.     call erase_line in prt_map in misc1.c
  112. misc2.c, moria1.c, store2.c: make sure cursor is always in the right
  113.     place after an inkey call
  114. create.c, misc2.c: rewrite put_character and associated routines, line up
  115.     columns, eliminate strcat/strcpy calls
  116. files.c: rewrote file_character so that it matches put_character, etc.
  117. io.c: fixed put_buffer so that it won't print past right edge of screen
  118. files.c, misc1.c, moria1.c, ms_misc1.c: loc_symbol rewritten, now checks
  119.     values of pl/tl/fm, did not correctly handle monsters which were
  120.     visible, but were not in a lighted spot
  121. moria1.c, io.c: rest() only erases MSG_LINE now if original 'hit ... to quit'
  122.     message displayed, new function in io.c erase_non_msg does this
  123. misc1.c: magic_treasure(), fixed helms which had wrong else level of cursed
  124.     items, added cursed rings of searching, set p1 value for amulet of magi
  125. ---------------------- 5/30
  126. treasure1.c, treasure2.c: three axes changed from type 21 to 22, this prevents
  127.     the Priest shop from buying these weapons
  128. --------------------- 6/2
  129. creature.c, moria1.c, moria2.c, spells.c, types.h: massive reorganization
  130.     of the way that visible monsters are handled, now ml is set if and
  131.     only if the creature is visible on screen
  132. creature.c, externs.h, moria2.c: procedure check_mon_lite removed, calls to
  133.     it replaced by calls to update_mon ()
  134. misc1.c: delete unused code
  135. creature.c, moria2.c: two places needed to test fm in addition to pl and tl
  136. spells.c: need to set fm/tl/pl before call to lite_spot/change_trap, eliminate
  137.     some unncessary calls to lite_spot, eliminate unneccsary clearing of fm
  138. ------------------------- 6/8
  139. dungeon.c, moria1.c, moria2.c: allow searching while blind, decrease chance of
  140.     successs if blind or have no light
  141. moria1.c, moria2.c, store2.c: change prt("", x, y) to erase_line (x, y)
  142. misc2.c: replace all "\0" with just ""
  143. io.c, moria2.c, scrolls.c, store2.c: add '.' to end of sentences
  144. dungeon.c, misc2.c, moria2.c, scrolls.c, store2.c: add msg_flag = FALSE after
  145.     lots of msg_prints, to make sure never get " -more" message line
  146. creature.c, dungeon.c, spells.c, staff.c: don't print 'light' messages if blind
  147. moria2.c: disarm_trap(), make no_light and blind same penalty, increase
  148.     blind/no_light and confused penalties
  149. moria1.c: rewrote area_affect, delete redundant code, don't stop at doorway
  150.     if no_light and it is unlit
  151. generate.c: fixed error in build_tunnel, stack points could overrun stack
  152. ------------------------ 6/9
  153. moria1.c: change test_hit so that always miss 1/20, and always hit 1/20
  154. moria1.c, moria2.c, spells.c: changed fval incorrectly when manipulating doors,
  155.     only change to corr_floor2 if next_to4 a room space
  156. creature.c: in get_moves, change 1.732 to 2, makes it faster, also can no
  157.     longer circle monsters by moving in a diamond shape
  158. death.c, io.c, files.c, main.c: for MSDOS, don't leave the highscore_fd file
  159.     open permanently
  160. save.c: save value of total_winner, in case of a forced call to save_char()
  161. all, types.h: deleted MSDOS ifdefs, the bytlint/byteint/wordint/worlint type
  162.     definitions were confusing, so changed all to int8/int8u/int16u/int16
  163. generate.c: rewrote loops to try to speed up level generation
  164. ---------------- 6/12
  165. misc1.c: for items with duplicates in treasure1.c, set level of all equal
  166.     to that of lowest
  167. treasur2.c: several items did not match same item in treasure1.c
  168. ----------------- 6/13
  169. treasur2.c: wands/staffs in store now have same level as those in dungeon
  170. dungeon.c, misc2.c, moria1.c, ms_misc.c, store2.c: removed some ASCII
  171.     dependencies
  172. ------------------ 6/16
  173. externs.h, constants.c, generate.c, misc1.c: fixes to make level generation
  174.     faster, rearrange order build_tunnel makes comparisons, call
  175.     correct_dir directly instead of through rand_dir, rewrite loops,
  176.     rewrite next_to4, rewrite next_to8
  177. externs.h, files.c, misc1.c, moria1.c, ms_misc.c: loc_symbol returns char
  178. == the following are due to CJS (Bruce Moria)
  179. create.c: in get_money(), charisma was subtracted and added, now only add
  180. desc.c: unquote() did not work at all, rewrote the whole thing
  181.     in identify, string[0] == 'T' should be string[1]
  182. moria1.c: area_affect, for direction 1, the 3 should be a 2
  183. misc2.c, moria2.c, scrolls.c, spells.c, store2.c: change msg_print(" ") to ""
  184. store2.c: eliminate erase_line/display_commands at end of purchase_haggle
  185. config.h: for defined(Pyramid), define ultrix
  186. eat.c: py.stats.intel to s_ptr->intel
  187. creature.c:  in make_move(), set m_ptr at begining of function,
  188.       in mon_move(), set m_ptr at begining of function,
  189.     test cmove before calling randint in mon_move()
  190.     change if (randint(10) > py.misc.stl) to && (randint(...))
  191. dungeon.c: move random teleport outside innermost loop, put with other checks
  192. == end CJS fixes ==
  193. creature.c: collapse a large number of if (...) if (...) constructions
  194.     to if (... && ...)
  195. constant.h, desc.c, externs.h, generate.c, misc1.c, rnd.c, save.c, variables.c:
  196.     all versions now use rnd(), rnd does not use SYSV calling conventions
  197.     anymore    BSD random() states eliminated
  198. generate.c: added code to build_tunnel to prevent infinite loops
  199. --------------- 6/19
  200. *.c: collapse a large number of if (...) if (...) constructions
  201.     to if (... && ...), delete unneeded braces
  202. ---------------- 6/21
  203. creature.c, spells.c: build_wall and earthquake, now kill monster if it can
  204.     not move through walls, and it can not move out of the way of the new
  205.     wall, also, does more damage to those that escape, in creature.c,
  206.     if in wall, must escape to empty space
  207. ----------------- 7/17
  208. main.c: added a setbuf call, for buffered output
  209. ------------------ 8/4
  210. merging changes due to Christopher J Stuart...zillions of changes
  211. stat structure changed
  212. externs.h: move functions definitions for lint to here
  213. create.c: help functions sorta' added, money now more dependent on stats,
  214.       really good/bad characters eliminated, etc...
  215. ------------------ 8/8
  216. creature.c: new function disturb used, stop attacks if player dead, add message
  217.     for two attacks which had no message, confuse-monster only works if
  218.     monster actually hits, door bashing different and noisy too!, 
  219.     creatures only eat lower level creatures, monster drawing changed,
  220.     monster memory added, etc...
  221. ------------------ 8/9
  222. desc.c: eliminate lots of unnecessary strcpy/strlen/etc calls, can inscribe
  223.     objects, store/dungeon objects will be merged in the inventory when
  224.     objects are identified, if curse a special object it loses its
  225.     special ability, %d code for damage, %a code for armor, etc...
  226. eat.c: misc changes...
  227. ----------------- 8/11
  228. help.c: moved help text into files, added monster recall info, etc...
  229. ----------------- 8/14
  230. Moria.doc: editing changes, removed lots of unnecessary hyphens
  231. io.c: rebuilt it (accidentally deleted current version)
  232. death.c: scoring procedures moved elsewhere, print_tomb more efficient and
  233.     uses far less stack, final char display different, upon_death
  234.     changed to exit_game, etc...
  235. generate.c: added STATIC and void
  236. magic.c: reduce indentation, increase spell damage, 7 dam/mana for Magic 
  237.     Missle, 4 d/m for balls, 5 d/m for bolts, etc...
  238. misc1.c: crowns higher chance of magic, monster dist changed to increase
  239.     chance of higher level monsters, unnecessary uid/eid calls deleted,
  240.     m_level changed to include level[0] monsters, highlighting for ores,
  241.     disappear percentages for objects in compact_obj() modified, '!'
  242.     char added to magic descriptions, damage added to bows
  243. ------------------- 8/15
  244. misc2.c: print message if gold/object created under player, stat handling
  245.     completely changed, new func title_strings, search/rest/paralysis/count
  246.     message print changed, new func prt_speed(), new stat functions, can
  247.     hide stat changes if unknown, get_name uses loginname if none entered,
  248.     change_name can print to file, inven drop/carry/etc changed to be
  249.     a little simpler, new func join_names, spell_chance/learn_spell/etc
  250.     chnaged to be a little simpler, get_spell with capital letter verifies
  251.     choice, etc...
  252. ---------------------- 8/16
  253. monsters.c: no change
  254. treasure1.c: %d added to weapons, %a added to armor, plus to dam added to bows,
  255.     mage's guide should be mages' guide?? appostrophe removed,    
  256. ---------------------- 8/17
  257. treasure2.c: change & in traps to a/an, scroll/potion subvals changed to 200
  258.     plus value in treasure1.c, etc...
  259. potions.c: every potion prints message, ident true only if something noticable
  260.     happens, greatly reduce indentation, stat handling different, etc...
  261. prayer.c: reduce indentation greatly, use up mana if prayer fails, etc...
  262. scrolls.c: reduce indentation, only ident if something noticable happens,
  263.     for identify must search for new location of scroll, etc...
  264. sets.c: ifdef out unused functions
  265. dungeon.c: add command counts, use new func disturb(), double regen if
  266.     searching, damage if really hungry, messages for protevil resist_heat
  267.     and resist_cold, new code for quiting rest mode, move teleport code
  268.     outside inner loop, add code to check strength/weight, find mode
  269.     done differently now, allow ^char for control characters, all
  270.     command chars translated to rogue_like chars, new commands = (options)
  271.     { (inscribe) V (view scores) M deleted but W improved : (map area)
  272.     rogue-like summon ^S -> &, etc...
  273. ---------------------- 8/24
  274. files.c: init_scorefile deleted, intro->read_times, don't modify argv,
  275.     new func helpfile, print_map deleted, print_monsters deleted,
  276.     file_character now takes filename as argument, etc...
  277. io.c: lint defs, new suspend function, much better curses handling,
  278.     new func moriaterm and restore_term, inkey does refresh on ^R, flush
  279.     should work now, new funct get_check, save_screen, restore_screen,
  280.     etc...
  281. constant.h: add defs for STATIC, ESCAPE, stats, increase treasure in
  282.     streamers, change store min and turnaround amount, MAX_MON_NATTACK,
  283.     MAX_EXP
  284. wands.c: inscribe wand if empty, reduce indentation, etc...
  285. staffs.c: inscribe staff if empty, reduce indentation, etc...
  286. spells.c: identify- update stats if affected, allow ident of equip items;
  287.     better light_line messages; when set pl false, must set fm false also;
  288.     misc, etc...
  289. ------------------- 8/29
  290. moria1.c: new function enchanted(), part of py_bonuses split into calc_bonuses,
  291.     cur_char1/2 deleted, complete rewrite of inven_command routines, new
  292.     functions check_weight/verify, can display weights, get_item can show
  293.     either inven or equip, options added, run code completely rewritten,
  294.     misc, etc...
  295. --------------- 8/30
  296. store1.c: item_value has *item->number removed, many routines changed to pass
  297.     item pointer, identify removed from store_carry, known1/2 put in
  298.     store_create, store_maint alg changed, etc...
  299. store2.c: clean up handling of msg_flag, incremental haggling in get_haggle(),
  300.     display_command moved from purchase/sell_haggle to store_purchase/sell,
  301.     enter_store code cleaned up, etc...
  302. config.h: misc...
  303. externs.h: add new variables, delete old variables, rearrange stuff, etc...
  304. types.h: added logging structure and recall structure, etc...
  305. variables.c: add new variables, delete old variables, rearrange stuff,
  306.     remove learn from spell structure, change titles so none shared
  307.     between classes, etc...
  308. -------------- 8/31
  309. moria2.c: weight bug fixed, py_attack did not decrement inven_weight when
  310.     inven_wield was a missile, and the player was carrying more than one
  311.     of them
  312. -------------- 9/1
  313. moria2.c: carry has pickup option, new functions for inscribing objects,
  314.     summon_objects returns type/number of objects created, ditto
  315.     monster death, new function check_view, add todam for using bow/arrow,
  316.     bashing changes, new sub py_bash extracted from old bash code,
  317.     jamdoor p1 values changed successive spikes have smaller effect,
  318.     etc...
  319. ------------- 9/2
  320. main.c: add bruce moria comment, new options, read environment variables, etc.
  321. wizard.c: wizard can change weight and speed of character, etc...
  322. unix.c: new file, contains UNIX specific code for user_name, check_input, and
  323.     system()
  324. signals.c: completely rewritten to be much nicer, same functionality
  325. recall.c: new file, for printing out monster memory info
  326. save.c: completely rewritten, same functionality, I think
  327. ------------- 9/7
  328. lint on mips machine
  329. ------------- 9/8
  330. lint on AIX (SYS V)
  331. ------------- 9/9
  332. lint on ultrix
  333. ------------- 9/11
  334. fix anonymous errors in order to get the program to compile...
  335. io.c, ms_misc.c: put screen_map in io.c, and made it a default feature
  336. signals.c, main.c, io.c: on EOF, the program now returns ESCAPE char until
  337.     exits dungeon(), then saves with no penalty
  338. ------------ 9/12
  339. externs.h, desc.c, variables.c, types.h: mushrooms/colors/rocks/etc changed to
  340.     char pointers instead of char arrays, saves space, make random init
  341.     faster, change player title to char pointers also
  342. moria1.c, potions.c, misc2.c, eat.c, dungeon.c, creature.c: cleanup handling
  343.     of chp and cmana, call prt_c* only once every time they change
  344. dungeon.c: set pointers only once at start of procedure
  345. eat.c: reduce indentation
  346. io.c, dungeon.c: remove msg_flag = FALSE line from inkey and put it in
  347.     dungeon.c where get command
  348. ------------ 9/14
  349. creature.c: change put_qio calls to just setting screen_change to true
  350. dungeon.c: remove superfluous erase_line and put_qio calls
  351. many: make character numbers more clear, 'a' for 97, DELETE for 127, etc...
  352. desc.c: objdes() bug with ins_buf handling, now clear ins_buf if none
  353. many, moria1.c: made "Which dir?" default for get_dir()
  354. -------------- 9/15
  355. misc1.c, monsters.c, treasur[12].c, many others: changed all hit ponts from
  356.     strings to a char array of size two, changed damroll to take two
  357.     characters instead of a string, this eliminates most all scanf calls
  358. -------------- 9/18
  359. monsters.c, creature.c, types.h: replaced strings containing monster attacks
  360.     with 4 byte array containing index into a monster attack table,
  361.     this eliminates the rest of the scanf calls, and saves space
  362. creature.c: many duplicate damroll calls in make_attack collapsed into
  363.     a single damroll call
  364. moria2.c: in chest_trap(), moved exploding chest trap to end to avoid
  365.     dangling pointer problem; in twall, only light spot if c_ptr->tl
  366.     is true;
  367. wizard.c, recall.c, desc.c, files.c: changes to fix handling of new damage
  368.     types for monsters and weapons
  369. ---------------- 9/19
  370. many files: eliminated redundant trap_lista, fixed place_trap so that it
  371.     no longer takes a typ parameter, change_type no longer calls
  372.     place_trap, negative level values for traps all made positive
  373.     and diasrm_object() changed appropriately
  374. externs.h, dungeon.c, misc2.c, moria1.c, variables.c: eliminated print_stat
  375.     variable since it was not used very much
  376. ---------------- 9/21
  377. create.c, externs.h, variable.c: eliminated bit_array variable
  378. variable.c: eliminated names of unused Rogue class spells
  379. many files...: changed the floor/wall definitions from variables to constants,
  380.     changed the values to make tests easier, all fval comparisons now use
  381.     manifest constants, door type floors eliminated since new find/run
  382.     code made them unnecessary
  383. constant.h, misc2.c, externs.h, variable.c: changed var stat_column to
  384.     constant, eliminated password variables
  385. many files: changed moria_flag to new_level_flag, and reset_flag to
  386.     free_turn_flag
  387. ------------- 9/23
  388. merged Xenix diffs and Atari ST diffs
  389. treasure1.c: potion of sleep no longer cures blindness
  390. wands.c: wand of wonder was wrong had 2 << randint() instead of 1 << randint()
  391. eat.c, potions.c, scrolls.c, staffs.c, treasur2.c, wands.c: added store
  392.     bought flag 0x80000000 to all food/potion/scroll/staff/wand objects
  393.     in treasure2.c, modifed the code so that these objects do not give
  394.     experience when used
  395. all files: removed all floating point code except for randnor() and los()
  396. many files: hp_player(-damage,"") calls did not work, change them all to
  397.     direct calls to take_hit(damage),  hp_player string parameter
  398.     removed since no longer used
  399. ------------- 9/25
  400. constant.h, config.h, externs.h, variable.c, misc1.c, misc2.c, potions.c:
  401.     floating point randnor code replaced by integer on that uses a table,
  402.     definition of MAXINT removed so there are now no differences between
  403.     16 bit and 32 bit versions of moria, MAXSHORT and MAXLONG defined
  404. Makefile, misc1.c, externs.h: calls to floor removed, math library no longer
  405.     used!!, DONT_DEFINE_CLASS def for SUN4 no longer needed
  406. ------------- 9/27
  407. misc1.c: replaced los code with an integer arithmetic version by jnh (Joseph
  408.     Hall), moria now uses no floating point numbers
  409. dungeon.c, files.c, moria1.c, store2.c, wizard.c: removed all sscanf calls
  410.     except for those in ms_misc.c, and one "%lx" in wizard.c
  411. ------------ 9/28
  412. treasure1.c, treasure2.c, types.h: change subval and number to 8 bit integers,
  413.     move flags after name, move number before weight, save 12 bytes per
  414. constants.h, etc: INVEN_MAX definition removed, INVEN_ARRAY_SIZE 1 smaller
  415. variable.c: store_choice now array of 8 bit integers
  416. monsters.c, treasure2.c: change t_level and m_level to array of 16 bit ints
  417. many: interpretation of subval changed to fit it into byte, new range uses
  418.     p1 to decide whether stacking permitted, torches can now stack
  419. create.c, types.h: changed size of history from 400 to 240 characters,
  420.     also print as lines of 60 instead of lines of 70
  421. variable.c, misc2.c, types.h: changed definition of spell_type from 12 to 6
  422.     bytes, new array spell_names to prevent duplicate strings,
  423.     no longer have entry for warriors
  424. variable.c, types.h: human female too light, made 150 from 120, also changed
  425.     every base/mod field from 16 bits to 8 bits
  426. types.h, variable.c: in background_type, change next and bonus fields to
  427.     8 bit integers, added 50 to bonus to make it positive
  428. ----------------- 9/29
  429. monsters.c: massive changes to monster file to fix inconsistencies
  430. ----------------- 9/30
  431. set.c: make flasks of oil vulnerable to frost and fire, like potions
  432. moria2.c: if set off a trap, temp set confused to zero to ensure that player
  433.     will move onto the trap instead of in random direction
  434. io.c, externs.h: confirm() no longer used, deleted
  435. treasur1.c, treasur2.c: give non overlapping subvals to potions/scrolls,
  436.     duplicate ones caused problems for giving random names
  437. desc.c, treasur1.c: %M for mushrooms changed to %m
  438. recall.c: fix printing of monster hit points, two numbers instead of a string
  439. moria2.c: new look code from bruce moria, look in arcs so that can see
  440.     anything on the screen, allows access to monster memories
  441. generate.c, misc2.c, moria1.c, moria2.c: various fixes to reduce code size,
  442.     increase speed, etc...
  443. misc1.c, etc...: popm and popt no longer take a pointer, instead return int,
  444.     pusht takes an int8u now instead of an int as a parameter
  445. ---------------- 10/1
  446. all: added copyright notice to every *.[ch] file
  447. --------------- 10/3
  448. config.h, creature.c, recall.c, save.c: fixed a few bugs picked up by the
  449.     ultrix compiler
  450. dungeon.c: disabled the save command
  451. -------------- 10/6
  452. create.c, files.c, dungeon.c, main.c, save.c: wrote helpfile function,
  453.     changed calling sequence so that caller does not have to do anything
  454. constant.h, desc.c, variables.c: eliminated lots of excess colors/rocks/etc.
  455.     eliminated all duplicates except between potions and mushrooms
  456. types.h: fixed _frac problem with exp and chp, had to be unsigned shorts
  457. misc1.c: made traps invisible again
  458. moria1.c, moria2.c, store2.c: replaced strcpy(string, "constant") code with
  459.     p = "constant" where possible
  460. treasure1.c, treasure2.c: changed subvals for wands/staffs/amulets so that
  461.     they start at zero, and don't have any missing numbers
  462. spells.c: teleport_away() must clear m_ptr->ml before calling update_mon()
  463. moria1.c, spells.c: check lite_spot() calls, eliminate unnecessary ones
  464. death.c, misc2.c, wizard.c: eliminated lots of unnecessary blanks in string
  465.     constants
  466. --------------- 10/7
  467. misc1.c, moria2.c, treasure1.c, treasure2.c: fixed lamp/torch subvals, again
  468.     can not let torches have subval >= 64, the torch wield code will
  469.     not work
  470. store1.c: don't let items with subval >= 192 stack in stores, they are
  471.     always handled as a group anyways
  472. spells.c: fire_bolt and fire_ball fixed in regards creature lighting
  473. variable.c: store_choice for temple wrong because broad aze renumbered
  474.     earlier, changed 13-15 to 12-14
  475. constant.h, dungeon.c, moria1.c: added print ac flag to status field,
  476.     calc_bonus sets flag, prevent printing AC while in store
  477. create.c: dis_ac must have dis_tac added to it
  478. spells.c: detect_monster evil and insivible now set m_ptr->ml when
  479.     print monster on screen, then creature() will correctly erase them
  480. --------------------- 10/8
  481. types.h: fixed _frac problem with cmana, had to be unsigned short
  482. moria1.c: in inven_command wear code, print 'too heavy' message after
  483.     print wielding message
  484. store1.c: item_value, must multiply value by item->number before returning
  485. store1.c: sell_price return zero if item should not be put into store
  486. monsters.c: disenchanter bat sleep set from 0 to 1
  487. all: eliminated all unnecessary elipses
  488. constants.h, creature.c, dungeon.c, eat.c: new defines for the creature
  489.     move, spell, and defense fields, eliminated all hex constants from
  490.     the 3 c files
  491. ------------ 10/9
  492. moria2.c: fixed falling rock trap in move_char(), step back so that 
  493.     player is not under the rubble
  494. variable.c: put copyright message in string, so that it appears in executable
  495. spells.c: create_trap modified to light up trap, in case it is an open pit
  496. all: replace prt calls with put_buffer where ever possible, because it's faster
  497. externs.h, io.c, signals.c: put ignore/default/restore_signal code back in
  498. wizard.c: rewrote the version info
  499. dungeon.c, moria2.c, signals.c: modified to use get_check() for consistency
  500. ------------ 10/10
  501. several spelling errors in CJS code
  502. misc1.c: forgot to change magic_treasure code when changed subvals a couple
  503.     of days ago for wands/staffs/amulets/rings
  504. externs.h, files.c, misc2.c, types.h: wrote new stat code, all stat bugs
  505.     fixed now, 6 stat values now, get_dis_stat() eliminated, new function
  506.     modify_stat(),
  507. misc2.c: get_obj_num changed, to increase probability of getting higher
  508.     level objects
  509. misc1.c, treasur1.c: had to change gain stat bits, the low 6 order bits of
  510.     treasure flags, because changed the order earlier
  511. ---------------- 10/11
  512. all: changed all 4 or less case switch statements except for one large one
  513.     in generate.c to nested if statements, this is smaller and faster
  514. ---------------- 10/12
  515. dungeon.c, generate.c, moria1.c: new_spot moved from dungeon to generate
  516.     because alloc_mon and place_win_mon use character position, fixed
  517.     minor new_spot bug
  518. constants.c, misc2.c, dungeon.c: bst_stat() can not call prt_stat, changed
  519.     to set py.flags.status, new stat change flags defined, and stat
  520.     print code added to dungeon.c
  521. creature.c: many duplicate disturb/strcat/msg_print brought outside the
  522.     switch statement in mon_cast_spell
  523. all: changed all unlite_spot() calls to lite_spot() calls, changed 
  524.     'if (test_light()) lite_spot()' code to just call lite_spot, this
  525.     fixes many subtle bugs, mostly dealing with mon vis to infravision,
  526.     unlite_spot code deleted
  527. files.c, misc2.c: added stat_adj(A_INT) to srh which was wrong
  528. misc2.c, spells.c, moria1.c, types.h: id_stat() and hid_stat[] eliminated
  529.     no more hidden stat values, display arg dropped from bst_stat()
  530. files.c, misc2.c: hex values replaced with constants
  531. ----------------- 10/14
  532. constants.h, store1.c: increased store turn around from 4 (avg 2.5)
  533.     to 9 (avg 5), changed store_main() to always call store create/destroy
  534.     regardless of bounds, lowered values of bounds MIN and MAX
  535. --------------- 10/18
  536. moria2.c: when open chest, clear TR_CURSED flag, which just also happens to be
  537.     monster win flag, to prevent easy wins
  538. constants.h, misc1.c->wizard.c: replaced remaining hex magic numbers with
  539.     manifest constants
  540. dungeon.c: added code that gives a player a chance of noticing that items
  541.     in inventory/equipment list are magical, the chance is much higher
  542.     for warriors than for magi
  543. --------------- 10/19
  544. dungeon.c: ^P^P did not clear the line with the pause_line message
  545. misc2.c: prt_state() did not clear all 3 digits of repeat counts
  546. all: moved lots of procedures around to increase number of static fuctions,
  547.     also made sure every C file less than 60K
  548. create.c, extern.h, misc2.c, spells.c, variables.c: change way that mhp
  549.     are calculated, new function calc_hitpoints(), new array player_hp[]
  550.     which contains player mhp for each level
  551. extern.h, main.c, misc2.c, potions.c, spells.c: change way that cmana are
  552.     calculated, new function calc_mana(), called whenever gain level,
  553.     lose level, or learn/forget spells
  554. extern.h, main.c, misc2.c, spells.c: change the way that spells are learned
  555.     and lost, learn_spell/learn_prayer deleted, new function calc_spells,
  556.     new spell type state forgotten, new var spell_forgotten, etc.
  557. -------------------- 10/20
  558. monsters.c: made spirit troll into 'G', made invisible, pickup, carrys obj,
  559.     added drain wisdom attack, added drain intelligence attack to green
  560.     glutton ghost
  561. all: moved all msg_print(NULL) calls into io.c, specifically, clear_screen(),
  562.     erase_line() and prt()
  563. moria2.c, spells.c: two places that called test_light to see if monster or
  564.     moving object lit were wrong, changed to eliminate check of fm
  565. creature.c: update_mon() failed when hallucinating, changed print(cchar,...)
  566.     to lite_spot() call
  567. variables.c: adjusted call stat adjustments, mainly to make priest harder,
  568.     gave priest negative str adjust, inc expfact from 10% to 20%
  569. misc2.c: new funcs prt_int() and prt_long(), same as prt_num/prt_lnum()
  570.     except no string argument, ": " moved into prt_num/prt_lnum string
  571. spells.c: all wands now have limits on range
  572. monsters.c: doubled Balrog eye sight from 20->40, evil iggy from 20->30
  573. eat.c: increase hp gain for 22/23/24, increase hp loss for 27
  574. constant.c, eat.c, potions.c, scrolls.c, staffs.c, treasur2.c wands.c:
  575.     eliminate store bought flag, only gain exp when use an item if the
  576.     use identifies the item
  577. ----------------- 10/23
  578. magic.c, wands.c: spell/wand damage did not match
  579. creature.c: monster stuck door bashing got sign of i_ptr->p1 wrong
  580. recall.c: change corrosive gases to poison gases
  581. externs.h, moria1.c: draw_block(), minmax(), maxmin() deleted, minmax and
  582.     maxmin calls were unnecessary, draw_block only called from one
  583.     place, sub2_move_light combined with sub1_move_light, 
  584.     sub4_move_light combined with sub3_move_light,
  585. creature.c: fix mon_move() so that creatures that never move increment their
  586.     r_attack[0] when standing next to the player, for Quylthulgs
  587. spells.c: detect object and detect treasure set tl, which could also light up
  588.     monsters, they now set fm
  589. ----------------- 10/24
  590. spells.c: can not gain exp by disarming traps created by a scroll
  591. types.h, magic.c, prayer.c, variable.c, misc2.c, constant.h: removed sname
  592.     from spell_type since it was a trivial value, changed sexp from 16
  593.     bits to 8 by dividing value by 4, saves about 310 bytes
  594. many files: eliminated long stretches of blanks in strings, remove repeated
  595.     chars from strings, typically " : ", saves over 1K of data size
  596. --------------- 10/25
  597. spells.c: aiming a ball type wand/spell at a 1-thick wall resulted in damage
  598.     to creatures on the other side of the wall, now it doesn't
  599. misc2.c: inc_stat changed so that player gains 1/6 to 1/3 of the distance
  600.     from the max 18/100 stat, 0 to 100 takes 13 gain stat potions,
  601.     dec_stat changed so that player loses 1/4 to 1/2 of the distance
  602.     from the max 18/100 stat, 100 to 0 takes 13 lose stat potions
  603. misc2.c: print_spells() modified so that spell are always listed with the
  604.     same letter, i.e. the letter does not depend on whether or not
  605.     you know the spells that precede it
  606. --------------- 10/26
  607. death.c: day string was size 11 should be 12
  608. dungeon.c: make 'magik' detect same chance for each class, need to set
  609.     i_ptr = &inventory[INVEN_LIGHT] before testing player_light,
  610.     this could cause the light to go off permanently
  611. misc2.c: calc_mana and calc_spells use p_prt->lev - class[].first_spell_lev-1
  612.     instead of just the player lev
  613. types.h, variable.c: add new field to class info, first level in which the
  614.     player can learn a spell, used immediately above
  615. variable.c: green glutton ghost no longer drains int
  616. misc2.c: print 'welcome to level message' before learning spells
  617. --------------- 10/28
  618. config.h, externs.h, dungeon.c, wizard.c: version info put in a help file,
  619.     game_version() function deleted
  620. files.c: removed obsolete print_map() and print_monster() code
  621. treasur1.c: made ring of WOE decrease wisdom, to balance ring of stupidity,
  622.     removed trailing ^ secret symbols which made no sense, changed
  623.     constant values from known2 to known1, such as ring of lordly protect
  624.     armor class values
  625. store1.c, store2.c, externs.h, types.h: add storenice features by Dan Berstein,
  626.     if (good bargain > 3 * bad bagains + 20) then always get final price
  627.     in that store, two new functions, noneedtobargain() and updatebargain()
  628. moria1.c: fixed wear command so that it prints inven letter of item removed,
  629.     and equip letter of item worn, added extra param to remove()
  630. generate.c, moria1.c, moria2.c, types.h: added an 'lr' flag to cave_type,
  631.     this is set for every space in or next to a room, lr is true for
  632.     lit rooms, and false for dark rooms, find_light() function deleted
  633.     as it was no longer necessary, twall lights spots that have lr set
  634. moria1.c, moria2.c: decrease search chances if hallucinating, decrease
  635.     disarm chances if hallucinating, look fails completely
  636. eat.c: print message "You feel drugged." for mushroom of hallucination
  637. moria1.c: eliminate unnecessary in_bounds() calls
  638. io.c: check to make sure tabs are all 8 character apart
  639. treasur2.c: made object_ident array bss
  640. misc2.c, moria1.c: fix calc_bonuses() so that it when wielding heavy bonuses,
  641.     it subtracts the weight penalty from dis_th (display to hit),
  642.     check_strength() modified to call calc_bonuses()
  643. misc1.c: fixed compact_objects() and compact_monster() so that they update
  644.     screen when deleting objects/monsters
  645. creature.c, spells.c: put message in aggravate_monster(), took out redundant
  646.     mesasge in creature.c
  647. moria2.c: modify py_attack(), inven_throw() and py_bash() to make it more
  648.     difficult to hit monsters which are not lit
  649. ---------------- 10/31
  650. moria1.c: sub3_move_light() modified so that it does not print @ when in find
  651.     mode
  652. recall.c: had an 'i == 11 | i == 18' which should have been a ||
  653.     printed out 11st,12nd,13rd levels incorrectly, now uses 'th'
  654. moria1.c: fix see_wall, it assumed walls are '#' which is not true for PC/Atari
  655. spells.c: breath() could do damage on the other side of walls, added an los()
  656.     call to prevent this
  657. moria1.c: area_affect treated 'potential corner' and 'branching side corridor'
  658.     identically, which is wrong, added see_nothing() so that these could
  659.     be handled separately
  660. ---------------------- 11/1
  661. moria1.c: when wearing object and must remove current object, fix code to
  662.     use inven_check_num to see it is possible; in wear code, when remove
  663.     old object check to see if inven_ctr increases before actually
  664.     increasing wear_high
  665. constants.h, misc2.c, moria1.c, store1.c, store2.c, treasure1.c, treasure2.c:
  666.     change definition of subval 192 so it can be used for torches, it
  667.     only stacks with others if have same p1 value, but it is always
  668.     treated as a single object, change ITEM_* definitions in constant.h
  669.     to match new definition, fix all code fragments that test subvals
  670. desc.c: change to use new ITEM_ definition
  671. moria1.c: fixed the potential corner/corridor intersection bug in the find code
  672.     again, except this time it works better than the original code
  673. ------------------------------ 11/3
  674. variables.c: decrease priestly HP bonus from 3 to 2
  675. moria1.c: fixed wear code bug, called inven_check_num() with item not slot
  676. ----------------- 11/4
  677. moria2.c: in tunnel(), print message if player tries to dig with hands
  678. moria2.c: several places where object/treasure picked up did not clear
  679.     c_ptr->fm, this is necessary since it might be set by detect spell
  680. --------------- 11/7
  681. moria1.c: fixed find_init so that moves straight into a corner would
  682.     correctly run around the corner
  683. moria1.c: changed the examine potential corner code in area_affect(), it
  684.     would run into rooms if corridor entrance next to a wall, at least
  685.     it doesn't do that for lighted rooms anymore
  686. ----------------- 11/8
  687. prayer.c: in remove curse spell, only clear flag for items that are 
  688.     wielded or worn
  689. io.c: truncate strings at col 79 instead of 80 if BUGGY_CURSES defined
  690. moria1.c: print weights in show_inven and show_equip at col 71 not 72
  691. io.c, misc1.c, moria1.c: change highlight mode for walls to display '%'
  692.     instead, this is much more portable that original code that used
  693.     standout mode and the high character bit, changed print(),loc_symbol(),
  694.     and see_wall()
  695. help.c: change help documentation for % character
  696. wizard.c: modify wizard_create and change_character functions, add white space,
  697.     exit if get_string fails (i.e. typing ESCAPE exits), modify get_string
  698.     limits to more reasonable values, remove switch for setting tchar
  699. moria_wiz_help, moria_owiz_help: correct errors in command list
  700. death.c: add msg_print(NULL) after show_inven() in print_tomb() so that
  701.     inventory can't    accidentally scroll of screen before exiting
  702. creature.c, moria2.c, spells.c: can't call prt_experience() in mon_take_hit()
  703.     as this gives "new level" message before "killed monster", move prt_exp
  704.     calls to after msg_print at everyplace that calls mon_take_hit()
  705. dungeon.c: modified repeat count code so that can edit the number entered
  706.     leave cursor on msg line while entering repeat count
  707. moria2.c: change summon_object() so that it will only create objects within
  708.     los of point where monster dies
  709. --------------- 11/9
  710. store1.c: stacking code in store_check_num() and store_carry() did not
  711.     handle torches correctly, changed to be the same as inven_check_num
  712.     code in moria2.c
  713. wizard.c: fixed mistake in change_character(), put *tmp_str != '\0' test
  714.     in inside if statement, not outside one
  715. externs.h, misc2.c, moria2.c: fix printing of spell characters from get_spell()
  716.     print_spells changed consec TRUE to nonconsec == -1 for consecutive
  717.     case, otherwise spells start with nonconsec=='a', added new arg to
  718.     get_spells() first_spell which becomes nonconsec when call print_spell
  719. wizard.c: move 'gold' from end of change_character to right after 'mana'
  720.     since it is more frequently used than the rest
  721. misc2.c: alloc_object(), fix it so that objects are not created underneath
  722.     the player, this was a problem for rubble and traps
  723. misc1.c: allow sling ammo to be enchanted in magic_treasure()
  724. store1.c: fix search_list() call for ammo in item_value(), was passing 1 ?!?
  725.     instead of correct subval
  726. treasur2.c: subval for spike wrong, change from 192 to 193
  727. misc1.c: remove see invisible from slay monster arrows, since it doesn't make
  728.     sense
  729. variable.c: change blows_table entry for STR/W .5-.7 and DEX 10-18 from one
  730.     to two, the value of one made things too difficult for low level mages
  731. monsters.c: for all monsters which used to be sleep value of 1 (old style),
  732.     change their new style sleep values from 0 to 1
  733. recall.c: stupid typo, change CM_CARRY_OBJ|CM_CARRY_OBJ to ...OBJ|CM_CARRY_GOLD
  734. ---------------- 11/10
  735. moria2.c: disarm() had signs switched for trap chances, "tot - 100 + level"
  736.     changed to "tot + 100 - level"
  737. variable.c: change "tin plated" to "tin-plated" and etc.
  738. ----------------- 11/13
  739. save.c: changes to get the save code working again
  740. moria2.c: when move onto a trap, instead of restoring confused count, should
  741.     increment it by the old value, since the trap may have set it
  742. generate.c: for type 2 rooms, make them dark below level 25, not 30
  743. moria2.c: when close a door, print "Something" instead of monster name if
  744.     the monster blocking the door is invisible
  745. moria2.c: in tunnel(), make the digging chance for non digging weapons equal
  746.     to their max damage + tohit bonus instead of proportional to weight,
  747.     the old code made lances better for digging than shovels
  748. moria2.c: change py_bash() chance, make it a function of monster hp +
  749.     monsters average max hp instead of level
  750. --------------- 11/15
  751. save.c, undef.c: restore_stats function eliminated, replaced by call to read
  752.     py.stats from file, other fixes to get restore code working
  753. creature.c: if creature never moves, kill it if it happens to be in a wall
  754.     instead of moving it out of the wall
  755. generate.c: everywhere that TMP1_WALL is used, must also set fopen FALSE
  756.     so that place_object(), vault_monster() etc will work correctly
  757. prayer.c: removed cure_blindness() and cure_confusion() from Holy Word spell,
  758.     since could not pray while blind/confused
  759. signals.c, io.c, externs.h: eliminate redundant definition of signal() in
  760.     signals.c, also eliminate suspend_handler and assignment to it from
  761.     signal(), make suspend() non-static
  762. moria2.c: in look(), put blind and image tests before get_alldir()
  763. moria2.c: in look() change [y to recall] to [(r)ecall]
  764. creature.c, externs.h, generate.c, misc1.c, monsters.c, moria1.c, moria2.c,
  765.     save.c, spells.c, types.h, constant.h: change m_list from linked list
  766.     to a linear list, muptr deleted, monster_type nptr field deleted,
  767.     function pushm deleted, now all scans of m_list go from mfptr (which
  768.     always points at last element) to MON_MINIX == 2
  769. misc1.c: compact_monster no longer calls prt_map(), which is unnecessary
  770. --------------- 11/16
  771. eat.c: fixed restore charisma mushroom, print 'stops' instead of 'starts'
  772. moria2.c: fix calculation of avg_max_hp in py_bash(), didn't check CD_MAX_HP
  773. monsters.c: spirit troll too hard to hit when can't be seen, lower AC 56->40
  774. treasure2.c: fixed scare_monster trap, the subtype value was wrong 63->99,
  775.     and the level needed 100 added to it
  776. misc2.: fix get_spells(), must add first_spell to *sn instead of subtracting
  777.     from spell[i]
  778. creature.c: in mon_move, return immediately if creature is killed because it
  779.     is in rock
  780. ---------- 11/17
  781. externs.h, spells.c, scrolls.c, prayer.c, staffs.c: change dispell_creature()
  782.     to dispel_creature()
  783. spells.c: dispel_creature uses m_ptr->ml after calling mon_take_hit() which
  784.     is wrong, now save value before calling mon_take_hit()
  785. moria2.c: turn find_flag into a counter, when it reaches 100, exit find mode
  786.     with message "You stop running to catch your breath.", prevents
  787.     infinite loop
  788. generate.c: fixes to help prevent isolated rooms, in build_tunnel() make
  789.     sure tunnel has gone at least 10 spaces from start before stop it,
  790.     in cave_gen(), copy [yx]loc[0] to [yx]loc[k] so that can build tunnel
  791.     from last room to first
  792. spells.c: light_line() called lower_monster_name() which is wrong, change
  793.     to monster_name() call
  794. externs.h, creature.c, moria2.c, spells.c: removed seen argument from
  795.     mon_take_hit, as it was used inconsistently, only get credit for a
  796.     kill if monster is visible when killed
  797. save.c, dungeon.c: call disturb in save_char() to turn off searching and
  798.     resting, remove search_off call in dungeon.c as is no longer needed
  799. variable.c: remove initialized data for py and old_msg since were (mostly)
  800.     zero, set f_ptr->food and f_ptr->food_digested in main.c
  801. constant.h: delete some unused constants, rearrange the order of a few others
  802. ------------ 11/18
  803. variables.c, externs.h, monsters.c, treasure2.c, save.c: every variable
  804.     written to save file needs definate size, can not be just 'int',
  805.     also spell_forgotten now read/written 
  806. -------------- 11/20
  807. spells.c: sleep_monsters1() did not set NO_SLEEP info for monster memory
  808. externs.h, moria1.c: changed new_spot to accept short pointers since
  809.     char_row and char_col are now shorts
  810. creatures.c, spells.c: multiply_monster(), removed slp parameter since it was
  811.     always FALSE, added monptr, to fix the m_list bug
  812. creatures.c: new m_list code fails when call delete monster from within
  813.     creatures(), fixed it by changing some calls to delete_monster()
  814.     to call delete_monster() only if the dead monster is between the
  815.     current monster and mfptr, otherwise, call fix1_delete_monster()
  816. externs.h, creatures.c, spells.c: breath() has new argument monptr, to fix
  817.     the m_list bug
  818. externs.h, creatures.c, spells.c: two new functions, fix1_delete_monster()
  819.     and fix2_delete_monster() which together equal delete_monster,
  820.     these are called from within creatures() when a monster is killed
  821. many: eliminated the fopen field since I had 5 bitfields in the cave structure,
  822.     and it is much easier to only save 4, added a BLOCKED_CORR case for
  823.     secret/closed/locked/stuck doors and rubble, all code that used
  824.     to test fopen now tests fval, most code that used to set fopen is
  825.     now gone since it was redundant with fval setting code
  826. moria2.c: fixed disarm() so that if there is a valid trap to disarm, it will
  827.     print "Something/monster_name is in the way!" just like close door."
  828. generate.c: place_stairs() could place them on the boundary, make sure
  829.     that x/y can never be 0 or cur_xx-1, also, in town_gen(), call place_
  830.     boundary() before place_stairs(), looks better, though not necessary
  831. moria2.c: fixed openobject() so that if there is something to open, it will
  832.     print an message just like closeobject if there is a monster in the way
  833. save.c: fix another save file problem, noscorefile defined as int in get_char,
  834.     just eliminated it and use noscore instead
  835. --------------------------- 11/22
  836. moria2.c: fix1_delete_monster() has to set m_ptr->hp to -1
  837. creature.c: monster eating code checked monster exp wrong, was using cptr
  838.     to index into the c_list
  839. creature.c: in creatures(), call fix2_delete_monster if hp < 0
  840. moria2.c, spells.c: dragon breath, wand bolts, wand balls, and thrown objects
  841.     were visible even when blind, added checks, only print them if can see
  842. moria2.c: tunnel(), print message "* is in the way" if there is a monster
  843.     in the spot where the player is trying to tunnel
  844. -------------- 11/23
  845. save.c: player_hp was not saved/restored, total_winner and panic_save were not
  846.     restored
  847. ------------- 11/27
  848. moria2.c: in tunnel, add the weapon damage to its digging ability
  849. create.c: get_history(), clear the history strings before writing them with
  850.     new values, to get rid of old strings
  851. variable.c: for background strings, change "1st child" to "first child"
  852. store2.c: add parameter to get_haggle() last_offer, in sell_haggle and
  853.     purchase_haggle must set new_offer to 0, in get_haggle only allow
  854.     incremental bid if new_offer == last_offer, i.e. at least one previous
  855.     bid has been made
  856. dungeon.c: in main loop, call creatures(FALSE) to light/unlight creatures
  857.     when ever player_light value changes
  858. ---------- 11/28
  859. save.c: new save code, to reduce size of save file, and to make the savefiles
  860.     portable
  861. constant.h, desc.c, generate.c, misc1.c, misc2.c, moria2.c, save.c:
  862.     changed the t_list from a linked list into a linear array of entries,
  863.     just like the previous m_list change, new constant MIN_TRIX,
  864.     all pusht calls changed to delete_object where ever appropriate, etc.
  865. ---------- 11/29
  866. misc1.c: increase p1 value for crowns of seeing by multiplying by 5
  867. ----------- 12/4
  868. creatures.c: change stealth code, instead of randint(10) < stl, it now cubes
  869.     randint(64) and compares against 1 << (17 - stl), the result is that
  870.     a change of one in stl always decreases monster notice chance by 80%,
  871.     and perfect stealth is impossible
  872. wizard.c: allow wizard to enter any stealth between -1 and 17
  873. save.c: extensive changes to save code competed, save files are now xor
  874.     encrypted, and are supposedly portable, all savefile protection code
  875.     is gone
  876. ---------- 12/5
  877. save.c, undef.c, misc1.c: fix a few lint errors
  878. changed version number to 5.0.8 and release the sources
  879. creature.c: changed stealth code, amount monster woken by from 100 to 125
  880.     (used to be 75 before 12/4)
  881. -------- 12/6
  882. spells.c, creature.c: changed the way wall building wands work again,
  883.     kill creature if it never moves, otherwise do a little damage,
  884.     if creature can not move out of rock in mon_move, then do more damage
  885.     and remove the wall ontop of the creature
  886. various: check use of "?", especially in get_check() and verify() prompts,
  887.     verify changed to replace the period with a question mark
  888. spells.c, creature.c, misc1.c: breath(), update_mon(), and loc_symbol()
  889.     changed to use blind status bit instead of blind counter, this
  890.     helps make the display look better, i.e. nothing disappears until
  891.     blindness takes affect in dungeon.c
  892. monsters.c: more monster fixes from DJG
  893. monsters.c, misc1.c, moria2.c, treasur1.c: change (SM) to (SA),
  894.     slay monster to slay animal
  895. monsters.c: set the new 'animal' bit correctly for all monsters
  896. recall.c: change 'unnatural creature' to 'natural creature', change a few
  897.     constants to defines
  898. save.c: add error exits to every loop/array index in the get_char()
  899.     routine to prevent crashes due to bad save files
  900. store1.c: in item_value, set value to zero if known cursed, this prevents
  901.     store from buying known cursed items
  902. ------------ 12/7
  903. store2.c: remove switches in prt_comment*() functions, replace with table
  904.     look up to get proper string, saves much code space
  905. creature.c: changed stealth code again, if resting/paralyzed monster has a
  906.     chance of noticing once every 50 turns instead of never like before,
  907.     change 64 to 1024, and 17 to 29 for a better distribution
  908. constant.h, save.c: read noscore variable from savefile of dead characters, now
  909.     only read/write noscore for live characters, changed patch_level to
  910.     9 so that old savefiles can still be read
  911. save.c: in get_char(), the loop error prevention code was missing two gotos
  912. store2.c: get_haggle(), when check for valid first use of incremental haggle,
  913.     ignore leading spaces in the string
  914. moria2.c: add_food(), should increment slow value, not just set it when bloated
  915. save.c: when can't create savefile, test for from_savefile before giving
  916.     wizard message "Overwrite old?", when exit in wizard mode do the
  917.     "readable to all?" check after closing the file
  918. save.c: from_savefile set wrong, should always be set if have read from a file
  919.     not just when a complete character is read
  920. moria2.c: bash(), do not put character off balance if bash is successful
  921. misc2.c: get_spell(), instead of beeping for unknown spell, print a message
  922. recall.c: for monsters with sleep value of 0, could never learn that fact,
  923.     change it so that this will be known if have killed 10 of them
  924. -----12/9
  925. dungeon.c: call disturb when player takes poison damage, or starvation
  926.     damage
  927. variable.c: change the three doors from 'a ...' to '& ...', needed because
  928.     of wall-to-mud wand
  929. wizard.c: create_object wrong, was calling popt() then delete_object() then
  930.     setting c_ptr->tptr, this fails because the delete objects will move
  931.     the location (in t_list) of the just created object will change
  932. treasur2.c: change 'nothing' item to be stackable, so that it can be safely
  933.     picked up
  934. save.c: was calling store_maint before objects were reidentified, this caused
  935.     stores to end up with multple entries for stackable identified items
  936. externs.h, misc2.c: new function inven_check_weight(), check toosee whether
  937.     picking up an object will change the players speed
  938. moria2.c: carry(), if picking up an object would slow you down, prompt with
  939.     question "Exceed your weight limit?" to give player a choice
  940. moria2.c, misc1.c: only show rock types in look() if highlight_seams option
  941.     is set, also change option text from "highlight" to "HL and notice"
  942. spells.c: in fire_bolt() and fire_ball(), set recall info if monster takes
  943.     extra damage because of weakness or reduced damage because of breath,
  944.     in dispel_creature() set EVIL/UNDEAD flag if creature hurt,
  945.     in turn_undead() set UNDEAD if creature hurt, in drain_life() set
  946.     CD_UNDEAD if creature not hurt
  947. recall.c: "may carry one or two treasures" needs the plural, but the others
  948.     remain singular/collective
  949. ------------- 12/11
  950. creature.c: stealth value changed again from 125 to 100
  951. wizard.c, variable.c: change rogue base stealth from 4 to 5, let wizard set
  952.     stealth to 18
  953. monster.c: white worm mass sleep value from 10 to 1, crystal ooze 60 -> 1
  954. creature.c: in drain mana spell, if r1 greater than cmana, then set r1
  955.     equal to cmana to limit creature's hp gain
  956. recall.c: when print out creature attacks, exit loop if i >= 4, caused problems
  957.     for umber hulk, etc. which have 4 attacks
  958. store1.c: instead of destroying all single stackable objects, only destroy
  959.     one half on average (randint(number)), makes store 1 and 5 inventories
  960.     look better, oil is much more common, identify a little more common
  961. treasure2.c: accidentally change blank_treasure tval earlier, set tval
  962.     back to 0, and set subval to 64
  963. store1.c: change store_carry(), for group items, must update scost; for any
  964.     stackable item, set ipos so that inventory will scroll to show it;
  965.     let group items (except torches) stack over 24 since each group is
  966.     created with a set number to begin with; ipos must be set to -1 at
  967.     start not 0;
  968. store2.c: store_sell(), pass a pointer to cur_top instead of just its value,
  969.     if sold object not on the page shown, scroll to show the object
  970. ------------ 12/13
  971. recall.c: only print out known attacks, i.e. check r_attack, change i to count
  972.     from 0 to 3, fixes bug with knowdamage(), add variable j to count
  973.     attacks actually printed out
  974. save.c: put limit on number of times store inventory changed in get_char()
  975. store2.c: rewrite incremental haggle code again, add new parameter 'num_offer'
  976.     to receive_offer, change get_offer parm last_offer to num_offer, only
  977.     allow inc haggle if num_offer != 0; must reset new_offer after
  978.     rejected offer in recieve_offer and sell/purchase_haggle
  979. ------------ 12/14
  980. misc2.c, lots: change way spell learning works, new command 'G'ain magic
  981.     spells, new function gain_spells() in misc2.c formerly part of
  982.     calc_spells(), new status flag PY_STUDY controls printing of 'Study'
  983.     in status line, new field py.flags.new_spells number of spells can
  984.     learn
  985. origcmds.hlp, roglcmds.hlp: document the 'M'ap and 'G'ain magic commands
  986. variables.c, potions.c: remove potion of learning as it is no longer useful
  987.