1::::::: 1990 :::::::: 2------------ 1/1 3creatures.c: in mon_cast_spell(), must update_mon() to light monsters before 4 they cast a spell 5------------- 1/2 6moria1.c: inven_command(), could not wear item which replaced equip item if 7 inven full, only fail if inven_check_num fails for torches 8misc2.c: change spacing for stats on change_character page, was printing in 9 last column for max stat 10moria2.c: tunnel(), if no shovel/pick, divide total tabil chance by two 11monsters.c: change eye-sight and sleep values for consistency, as noted by 12 djgrabin 13help.c: change the monster recall so that it lists high level monsters first 14creature.c: when monster bashes down a door, call disturb() to halt resting 15io.c: fix msg_print() so that -more- is always printed on screen, fix 16 put_buffer() so that does not fail if col argument greater than 79/80 17misc1.c: change chance for ego weapons/missiles to 3*special/2 instead of 18 just special, needed because treasure distribution change has made 19 ego weapons not as common as before 20--------- 1/11 21monsters.c: let nether wraith phase, set Black/Red/Multi ancient dragons 22 to a sleep value of 700 23creature.c: increase r_attacks if either notice true or r_attacks is 24 nonzero (i.e. it has been noticed before) 25moria2.c: move_char(), when step back after setting off a falling rock trap, 26 check to see if have stepped back onto another trap 27moria1.c: inven_command(), when restart it after taking off an item, don't 28 print the 'have to drop something' message because that is confusing 29misc2.c: modify_stat(), could overflow 118 when increasing stats, add extra 30 case to enforce max of 118 31--------- 1/12 32all: apply william setzer's objdes() diffs, 500K patch file, change version 33 number to 5.0.10 and distribute 34desc.c, misc2.c, store1.c: remove several obsolete uses of index(), 35 insert_num() no longer used anywhere 36constant.h, desc.c: change ID_TRIED,ID_KNOWN1 to OD_TRIED,OD_KNOWN1 37desc.c: eliminate titles[], rename title_space[] to titles[] 38all: fixed lint errors 39all: make sure that all objdes() strings are bigvtype 40desc.c: fix printing of bows/arrows/picks, needed new p1_use define, and 41 rearrange code in objdes() switch statement 42treasur1.c, treasur2.c: remove -100 tohit from books, was being printed, and 43 is silly anyways 44constant.h, externs.h, save.c, treasur2.c: change object_ident[] from 45 MAX_OBJECTS to OBJECT_IDENT_SIZE = 7*64, see object_offset() in desc.c 46 to see why this is necessary 47---------- 1/13 48externs.h, misc2.c, store1.c: deleted obsolete references to treasure_type 49desc.c: always print toac field if known2 and non-negative 50config.h, io.c, misc1.c: eliminated BUGGY_CURSES define, caused too much 51 trouble, just assume that can never print in last column of screen 52constant.h, desc.c, misc1.c, moria2.c, spells.c, treasur1.c, types.h: 53 created special_names table to hold all possible name2 strings, 54 name2 changed to an int8u which holds index to special_names table 55externs.h, main.c, treasure1.c: sort_objects() function deleted, sorting now 56 done by init_t_level using O(n) bin sort, into sorted_objects[] array 57files.c, misc2.c: object_list[] references that assumed it was sorted now 58 indirect through sorted_objects[] array 59main.c, variable.c: player_init indexes now point into object_list instead 60 of inventory_init 61------- 1/14 62constant.h, externs.h, main.c, store1.c, treasur1.c, treasur2.c, variable.c: 63 deleted inventory_init array, stores objects now in object_list, 64 MAX_OBJECT adjusted, MAX_DUNGEON_OBJ defined, store_choice[] fixed 65all: put all objects in object_list, trap_list, door_list, store_door, 66 gold_list, up_stair, down_stair, rubble, much, blank_treasure, 67 scare_monster are not separate variables anymore 68all: invcopy now takes an object_list index as second parameter, name field 69 deleted from inven_type and fields rearranged 70----------- 1/15 71store1.c: search_list() deleted, use i_ptr->index instead to get raw item cost 72save.c: obsolete treasure_type references deleted, save files work again 73creature.c, magic.c, misc2.c, prayer.c, save.c, wands.c: fixed long/short 74 problems with shift, mostly change (1 << i) to (1L << i) 75all: add new register declaration, check indentation, fix 32/16bit int 76 problems 77constant.h: change version number to 5.0.11 78------------- 1/17 79spells.c: aggravate was not initiallized in aggravate_monster() 80monsters.c: novice rogue now evil like other rogues 81misc2.c: 2 "... learn ... new spells ..." messages changed to print prayers 82 instead for priests 83moria2.c: drop_throw(), "The %s hits %s" changed to "The %s hits the %s." 84many: fixed problems with setting of free_turn_flag 85----------- 1/19 86misc2.c: fix inven_carry(), to stack store/dungeon items properly 87desc.c: objdes(), set p1_use = IGNORED for food and potions, changed 88 is_a_vowel(tmp_val[1]) to [2] 89moria2.c: "exceed weight limit?" message now prints item name also 90desc.c, spells.c, staffs.c, wands.c: empty wands are not incribed empty if 91 known2, empty removed when wands are recharged 92desc.c: put spaces between inscribed words 93dungeon.c: always inscribe majik when character notices this, not just for 94 inventory items as that helps priests more than fighters 95store1.c: sell_price(), succeed only if both item->cost and item_value() are 96 positive 97creature.c: don't increase a number of attacks when monster repelled in 98 make_attack(), i.e. no damage done so shouldn't learn about damage 99moria1.c: regenhp and regenmana, could get chp/cmana equal to max and _frac 100 non-zero, change c > max test to c >= max test 101constant.h, dungeon.c, misc2.c: hp and mana were printed while in store/inv, 102 fix calc_hitpoints() and calc_mana() to set flags instead of printing, 103 in dungeon.c, checks flags and print values 104---------- 1/20 105store2.c: redisplay store prices if charisma changes during the inven_command 106 calls (actually just redraw everything) 107moria2.c: monster_death(), dump must be set to 0 is number is 0 108constant.h, moria2.c, recall.c, spells.c: recall printing of treasure changed, 109 instead of setting CM_ bits, store largest number of treasure ever 110 generated in those 5 CM_TREASURE bits, changed monster_death() to set 111 the bits the new way, changed uses of monster_death() to replace old 112 treasure bits with new ones, the vague print out treasure amounts 113 replace with printout of precise number of treasures generated 114externs.h, moria2.c: monster_death() changed to int32 monster_death() 115moria1.c: new_spot() contained line of code "i = randint(10)" that did not 116 belong there, was formerly testing code 117desc.c: objdes(), force zero charges to always print, also, always print 118 digging plusses even if zero 119main.c: items that initialize players inventory are marked store_bought(), 120 this is needed so that dagger/armor bonuses will be shown for them 121desc.c: objdes(), fixed printing of doors, known1() clear the tried flag, 122 magic_init() don't let scroll names end with a blank 123misc2.c: gain_spells(), call calc_mana() if py.misc.mana == 0, this is 124 for characters who did not know any spells before the 'G' command, 125 can't gain spells if blind/no light/confused 126moria1.c: infinite loop entered with 'id' and screen_change, also, 'n' to 127 the continuing with inventory prompt did not work, must clear 128 doing_inven before returning from inven_command() in these cases 129desc.c: identify(), don't merge items in equip list, only merge items that 130 are single stackable 131misc2.c: inven_carry(), inven_check_num(), fix item stacking, items can only 132 stack if they are both identified or both unknown (store items are 133 always identified) 134constant.h: change version number to 5.0.12 and distribute 135------------ 1/21 136desc.c: objdes() bug, change p1_use = IGNORED to p1_use == IGNORED 137moria2.c: move_char(), moving into a wall is no longer a free turn 138misc2.c: gain_spells(), priests no longer need book before can learn spells 139 from it, mages still need the books, calc_spells() delete unused 140 var spells[], remove limit of 23 from number of new spells 141dungeon.c: made scribe_object() a free turn again 142recall.c: only print monster speed if at least one movement flag known 143unix.c: missing */ after Gakk!! -CJS-. 144desc.c: stacking did not work right, fixed known1_p() to return OD_KNOWN1 145 instead of TRUE for store items, so that known1_p() == known1_p() 146 will work consistently 147monsters.c: creeping coins hit instead of bite, and touch instead of breath 148variable.c: fixed problems with temple/alchemist store inventories 149desc.c, store1.c: fixed food prices, only check unknown if subval puts it 150 among the molds/mushrooms 151------------- 1/24 152misc2.c, types.h: change inscrip back to char *, fix inscribe() to malloc 153 space for string, and then copy inscription into the malloced space, 154save.c: fixed (compatibly) to write/read new inscriptions 155desc.c: free malloced inscription space in invcopy 156death.c, misc1.c: delete max tcptr code 157constant.h, desc.c, misc1.c: define new const ID_SHOW_TOHIT, in magic_treasure 158 set this bit for every weapon,digging tool,missile,bow, in objdes() 159 print out tohit/todam if this bit set and object identified, this 160 makes it easy to tell ident weapons from unident weapons 161main.c: char_inven_init() must set ID_SHOW_TOHIT flag for initial weapon 162death.c, constant.h, misc1.c: change MAX_TALLOC from 225 to 150, 163 delete temporary code which printed out max tcptr values 164misc2.c: allow inscriptions of up to 24 characters 165constant.h: change version number to 5.0.13 and distribute 166-------------- 1/26 167wizard.c: wizard_create(), initialize the name2 and inscrip fields to 0, 168 init the ident field to known2 and storebought 169constant.h: changed MAX_TITLES from 60 to 45 170desc.c: magic_init(), wrote to a char *tmp; modified to write to a vtype 171 string 172recall.c: change printing of treasure again, only print 'sometimes' is 60% is 173 only bit set, otherwise always print 'often' if only one object, for 174 two objects, print 'often' only if 60% and 90% are only bits set 175scrolls.c: recharge scrolls not used up when read, fixed setting of used_up 176spells.c: res = TRUE; moved out of if-stmt so only needed once 177treasure.c: change wiz obj name from "& wizard object" to "{wizard object}" 178---------- 1/29 179moria2.c: tunnel(), give player attack on creature if it is in the way 180misc2.c: gain_spell(), remove limit of 22 on learning spells, fix print_spells 181 so that it will only show the first 22 spells 182constant.h, desc.c, misc1.c: change ID_SHOW_TOHIT to ID_SHOW_HITDAM, set this 183 bit for gauntlet/rings of slaying, and irritation/enveloping cloaks, 184 fix objdes() so that it only prints both tohit/todam if this bit is set 185 otherwise, only prints one number, if either of tohit/todam nonzero 186desc.c, treasure.c: remove "the entrance to the " from store doors and put 187 in objdes() in desc.c 188misc2.c: put_misc2(), add "Exp to Adv." to character display 189constant.h, desc.c, misc1.c: added defines for ID_NOSHOW_P1 and ID_SHOW_P1 190 to improve printing of object names, objdes() always prints p1 if 191 ID_SHOW_P1 set, and never prints it if NOSHOW set, these override 192 the default p1_use setting, NOSHOW added to sustain stat rings, 193 SHOW added to clumsy/weak gloves, boots of speed/stealth/slowness, 194 helms of int/wis/infra/might/lordliness/magi/beauty/seeing/ 195 stupid/dull/weak/ugly, cloaks of stealth 196creature.c: increase effect of aggravate_monster attack from range of 5 to 20 197spells.c: dispel_creature(), prt_exp() was only called when visible creatures 198 died, now always called when creature dies 199misc1.c: added messages to compact_objects() and compact_monsters() so that 200 can tell if they are ever called 201store1.c: rings/amulets which are not known2 now have base value from object 202 list instead of real value 203moria2.c, staffs.c, wands.c: cast level to int, so that calculations will be 204 done with signed arithmetic, in openobject() change chance of opening 205 a chest, instead of -2*level use -level, this help eliminate chests 206 which are impossible to open 207--------- 1/30 208recall.c: print ' at normal speed' for monsters with mspeed = 1 209--------- 2/10 210spells.c: turn_undead, speed_monsters, sleep_monsters2, and dispel_creature 211 modified so that they only affect creatures in los of player 212externs.h, misc2.c, variable.c: new array spell_order[], holds order in which 213 spells are learned, in calc_spell() spells are now remembered in 214 the order that they were learned, and forgotten in the reverse order 215 learned, in gain_spell() must modify spell_order when spell learned 216main.c: spell_order initialized in inven_char_init to all 99s 217save.c: save/restore spell_order, for patch_level <= 13 savefiles create 218 a reasonable spell_order on the fly 219misc2.c: was erasing wrong line in gain_spells, change `j+2' to `j+1' 220all: change file names to be 8.3 characters long 221constant.h: change version number to 5.0.14 and release 222---------- 2/10 223dungeon.c: change rogue-like wiz help key from ^? to \ 224all: merged in Mac sources, all initialized variables are now in variable.c, 225 rearranged directory structure 226---------- 2/11 227all: merged in VMS sources 228changed to 5.0.15 and distribute 229--------- 2/13 230moria2.c: carry(), printed 'worth of emeralds..' removed '.' from string 231desc.c: crowns did not print out AC because it is zero, add special case 232 to objdes() so that tval == 33 (crowns) always have AC printed out, 233 change (+5 charges) to (5 charges) 234----------- 2/14 235moria2.c: inven_throw() created second copy of pointer to malloced 236 inscription, it now creates new inscription for new object 237moria1.c: inven_command(), wear option copied malloced inscription, 238 create new inscription for new object 239misc2.c: inven_destroy(), free inscription of just deleted object, 240 clear inscrip pointer of last objects previous location, so that 241 it will not be freed, inven_drop(), create new inscription for 242 new item, inven_carry() create new inscription for new item, 243 scribe_object() free space for old insription since it is deleted 244config.h, externs.h, misc2.c, moria1.c: rename remove() to takeoff() to 245 avoid naming conflict with library routines 246externs.h, misc2.c, store1.c: deleted join_names(), no longer doing anything 247 useful, and was wrongly creating duplicate pointers to malloc blocks 248moria2.c: make moving into walls a free turn again, but player can not attack 249 invisible creatures in walls by moving into wall (hence preventing 250 him from using 6 free turns to search for invis creature), must 251 tunnel into wall instead, which always takes a turn 252dungeon.c, externs.h, moria2.c: pass direction to tunnel() instead of point 253 digging to, eliminates a lot of duplicate code, tunnel() now checks 254 confusion, and tries to tunnel in random direction if confused 255treasure.c: clone monster wands changed from level 2 to level 15, makes them 256 recharge less, max 6 new charges instead of max 18 new charges 257files/version.hlp: add Dan Bernstein's name to credits 258magic.c, variable.c, wands.c: change stinking cloud from 16 to 12 damage as 259 it was too close to lightning bolt at 18, reduce mana for mage/ranger 260 from 4/6 to 3/5 261moria1.c: show_inven() and show_equip(), don't print first two spaces when 262 col is zero, since will blank the whole screen anyways 263moria2.c: py_attack(), only cleared confuse_monster flag if monster survived 264 attack, now always clear this flag and try to confuse monster 265-------------- 2/16 266all: add in diffs to get MSDOS version working again, add files from binary 267 PC-Moria distribution 268types.h: for PC, use 'unsigned char var : 1' to reduce sizeof cave_type 269 from 5 to 4 270desc.c, misc1.c, misc2.c, moria1.c, moria2.c, save.c, wizard.c, types.h: 271 change inven_type inscrip field from pointer to an 13 char array, 272 mallocing storage for inscriptions does not work, results in 273 dangling pointers when inven_types are copied 274save.c: add 'time' to savefiles, use this to calculate age of savefile 275 instead of using stat, much more portable, and prevents cheating, 276 if time is newer than current time, set age to 0, when save file 277 check to see if current time greater than start time, if not, 278 then save start time plus one day in save file 279mac.c: delete getfileage since no longer used 280recall.c: change knowdamage(), add damage parameter so that higher damage 281 attacks take longer to learn than lower damage attacks 282monsters.c: jellies and molds no longer have treasure 283save.c: two places have (*str != NULL), changed to (*str != '\0') 284save.c: remove support for pre 5.0.13 versions, rd_item() no longer needs 285 patch_level 286monsters.c: move crystal ooze from level 31 to level 40, to make raising 287 crystal oozes for treasure much more dangerous 288--------------- 2/19 289all: added defines for tvals, and substituted every where in program 290---------- 2/21 291ms_misc.c, io.c: remove all uses of mvprintw() for ibmpc port, since PC 292 curses also pulls in the fp library if mvprintw is used 293dungeon.c: in the recover from blindness code, the disturb() call must 294 be before the creatures(FALSE) call 295getch.c, io.c, Makefile: more fixes for the VMS port of umoria, new getch.c 296 file, and new copy of (4.87) io.c file 297---------- 2/22 298all: check again for numbers that should be constants 299constant.h: change version number to 5.0.17 300externs.h, main.c, moria2.c, signals.c, treasure.c: compile with gcc -Wall 301 and fix all reported errors 302--------- 2/26 303prayer.c: change (!class[].spell == PRIEST) to (class[].spell != PRIEST) 304store2.c: for good bargaining, use final_ask not min_buy in sell_haggle() 305dungeon.c: change "Sorry.." to "Sorry." 306misc1.c: for gloves/gauntlets, p1 and ID_SHOW_P1 set in wrong place 307creature.c: make_attack(), creature could be visible at start of attack but 308 invisible at end due to a teleport, set notice/visible appropriately 309 before monster attacks, and don't use m_ptr->ml afterwards 310monsters.c: creeping coins always carry gold now, 1d2 for copper, 1d2+60 311 for silver, and 1d2+90 for gold 312treasure.c, wizard.c: change name of wizard items to empty string, and 313 inscribe them with "wizard item" 314desc.c: problem with rubble/stone-to-mud, change rubble case from like stairs 315 to be like doors 316moria1.c: show_equip(), change non-weight limit from 57 to 60, change weight 317 limit from 49 to 52 chars, for show_inven(), change limits from 318 66/74 to 68/76 characters 319creature.c, magic.c, prayer.c, spells.c, wands.c: fix get_flags(), 320 fire_ball(), fire_bolt() and breath() to use defined constants for 321 attack types 322moria1.c: show_inven(), show_equip(), make sure that col never less than zero 323all: merged in Atari ST diffs from Stephen A. Jacobs 324--------------- 2/27 325creature.c: fixed bug with doors, always open/light door instead of only 326 opening/lighting them when in los of player 327moria2.c: when bash open door, only break it 50% of the time to be consistent 328 with code in creature.c 329all: delete some obsolete files, annotate a few others, put README files 330 in the subdirectories to explain what is present 331save.c: fix old savefile compatibility code to work with new version numbers 332constants.h: change version number to 5.1.0 and publicly announce 333---------- 2/28 334recall.c: creature is worth... sprintf() call used %ld instead of %d 335moria2.c: look_ray(), every place GRADF multiplied by y, cast it to long 336 to prevent overflow of 16 bit ints 337ms_misc.c: were still two refs to 'byteint', changed to 'int8u' 338MLINK.LNK: updated for umoria5.0, add undef and recall, change treasur[12] 339 to treasure 340create.c: delete sleep(1) call in character rerolling code 341death.c: put "#ifndef L_SET" around the #define L_SET 342io.c: ifdef out suspend code, for USG systems with BSDisms that have SIGTSTP 343 defined but don't actually implement it 344io.c: change name of variable 'border' to 'screen_border' to avoid naming 345 conflict on SGI/SYS V machine 346INSTALL: moved from doc subdirectory to root directory, and brought up to date 347---------------- 3/1 348misc2.c: two places where (1L << j) occurred, and j could be 99 (unknown 349 spell from spell_order[]), this is an undefined operation, fixed 350 source to not shift if j == 99 351------------------- 3/3 352misc1.c: set_options(), typing '-' on line 0 gave error, change i=max to 353 i=max-1 354store1.c: item_value(), calculating digging tool values wrong, subtract off 355 objects initial p1 plusses before multiplying p1 by 100 356dungeon.c: for paralysed/resting, move cursor to player before refresh call 357creature.c: disenchanter bat attacks could put tohit/todam/toac below zero, 358 fixed so that they can not go below zero 359moria1.c: if have MAX_SHORT hp/mana, then could get overflow in regenhp/mana 360 routines, added checks for overflow 361dungeon.c, io.c: save on EOF code did not work, in inkey(), remove casts to 362 char in eof test, remove call to feof(), in dungeon(), add !eof_flag 363 to innermost while loop to ensure it exits on error 364save.c: in sv_write(), clear death flag if eof_flag or panic_save set, so 365 player can restart game to see tombstone 366main.c: set death flag if hit points are negative, can happen if a HANGUP 367 savefile or panic savefile is restored 368save.c: if get_char(), don't overwrite died_from string if player is dead 369main.c: if specify -r or -o, force rogue_like to appropriate value after 370 read the savefile, since get_char() will modify rogue_like_commands 371moria1.c: search(), "have found a trap.." fixed, removed extra period 372monsters.c: added CD_NO_SLEEP flag to jellies, oozes, elementals and the 373 gelatinous cube 374dungeon.c: fix "which level" wizard prompt, limited to level 99 max 375----------- 3/4 376all: merged in more Mac diffs, Mac version should compile now 377wizard.c: stealth max 87 should be 18 in printed string 378desc.c: identify(), if cursed incscribe with ID_DAMD, unsample(), do not 379 clear the ID_DAMD flag, since an unsampled item is still cursed 380config: change version number to 5.1.1 and release 381------------ 3/5 382monsters.c: added CD_NO_SLEEP flag to creeping coins 383recall.c: recharge(), change chance of failure from randint((num+40)/10)=1 384 to randint((num+40-i_ptr->p1-i_ptr->level)/10)=1 to make it harder 385 to recharge high level and highlly charged wands 386recall.c: change j from int to int32u, since it is used with flag fields, 387 change two %d uses of it to %ld 388desc.c: objdes(), don't print ID_TRIED value for store bought items 389moria2.c: a slow dart trap now has no effect if have free action 390io.c: must ifdef out the tbuf.c_cc code, since this causes the program to 391 fail for some reason 392--------------- 3/13 393signals.c: add void to USG signal_hander definition 394externs, ms_misc.c: move fopen declaration from externs.h to ms_misc.c, and 395 make static, and make FILE * not struct _iobuf 396ms_ansi.c: include stdio.h 397generate.c: change #if DEBUG to #ifdef DEBUG 398config.h, generate.c, types.h: added ifdefs for IBMPC_TURBO_C 399--------- 3/16 400moria1.c: inven_command() "Wear" prompt changed to "Wear/Wield" 401monsters.c: earth elementals/spirits can now move through walls 402spells.c: wall_build(), for earth elementals, increase their hit points 403files.c: helpfile(), can ESC out now 404spells.c: cloning a monster will wake it up now 405dungeon.c: allow two-char control character sequences to be used with 406 repeated commands (deleted else from "else if (command == '^')") 407roglcmds.hlp: document how to avoid problem with repeated dig left command, 408 i.e. '13^H' doesn't work, type ^ then H, or type SPACE then ^H 409--------- 3/19 410unix.c: initialize num_chars to zero in check_input(), in case FIONREAD absent 411---------- 3/21 412all: fix most SYS_V lint errors 413----------- 3/23 414dungeon.c, io.c: calling inkey() when check_input true is wrong since it traps 415 ^R and does other stuff, instead call new function raw_inkey(), which 416 only calls getch 417io.c: flush(), occasionally caused loss of output, instead of using fancy 418 ioctls, drain input by using check_input/raw_inkey 419--------- 3/25 420dungeon.c, io.c, unix.c, atarist.c: AIX can't check to see if input is 421 pending, but can do non-blocking read, so check_input changed so 422 that it consumes input when called 423constant.h: change version number to 5.1.2 and distribute 424-------- 3/26 425save.c: when resurrect, clear poisoned flag and food flag to prevent character 426 from immediately dying again 427main.c, misc2.c, unix.c, save.c: fix some BSD lint errors 428moria1.c: remove unnecessary flush() call from take_hit() 429creatures.c, misc1.c, externs.h, variable.c: fixed problem with calls to 430 compact_monster() within creatures() by adding a horrible hack, 431 new variable hack_monptr defined to hold current creature() monptr 432---------- 3/27 433variable.c: add infra 3/2 for elf/half-elf, were both previously 0, 434 increase gnome infra from 3 to 4 435config.h, death.c, dungeon.c, externs.h, main.c, misc2.c, signals.c: 436 modify wizard mode code, no longer need password or correct UID to 437 enter, prints disclaimer then asks for confirmation 438atarist.c, death.c, misc2.c, ms_misc.c, save.c, signals.c: eliminate all 439 getuid() etc. code, only place these are still used is in main.c 440 and unix.c 441all: merge wizard/god mode, god mode nolonger exists 442io.c, unix.c: problems with flush() on EOF, don't call check_input if EOF, 443 also, check_input returns zero if got an error on the read, also 444 inkey() clears msg_flag on EOF to prevent infinite loops exit_game/ 445 msg_print/inkey/exit_game/etc... 446moria2.c: monster_death(), increase tries from 10 to 20 so that treasure will 447 be created more often 448constant.h: increase MAX_MALLOC from 101 to 125 to reduce compacting monsters 449 messages, increase MAX_TALLOC from 150 to 175 because it is possible 450 to get compacting objects message during level generation 451constant.h: BTH_HIT deleted, no longer used 452----------- 3/28 453moria2.c: facts(), multiply damage for missile by 2/3/4 instead of adding when 454 use proper weapons, makes missiles much more useful 455save.c: write store info and time into save file even if dead, so that can 456 be restored on a resurrection 457constant.h: change version to 5.1.3 458-------- 3/30 459constant.h, externs.h, files.c, misc2.c, moria1.c, moria2.c, staffs.c, 460wands.c, variable.c: modify how misc abilities vary with level, new variable 461 class_level_adj, which holds the new adjustment values, bth, bthb, 462 device, disarm and save affected 463externs.h, misc2.c, moria2.c: critical_hits() has fourth paramter, that 464 indicates whether to use CLA_BTH or CLA_BTHB class level adj 465moria2.c: penalty for attacking invisible creatures modified, was minus 466 lev * BTH_LEV_ADJ-1, now minus lev * BTH_LEV_ADJ/2, hence warriors 467 have less penalty than mages/priests 468creature.c, externs.h, misc2.c, moria2.c: test_hit has a fifth paramter, that 469 indicates whether to use CLA_BTH or CLA_BTHB (or even CLA_SAVE) 470io.c: add abort() calls to move_cursor_relative(), print(), and put_buffer() 471 to help find bugs in the code 472save.c: eliminate support for versions 5.0.11 to 5.0.13 473misc2.c: get_spell(), only say 'unknown spell' if it is actually an alphabetic 474 character typed 475treasure.c: delete one ring of adornment and one amulet of adornment, 476 add arrows at level 15, and bolts at level 25 477--------- 3/31 478store1.c: change missile cost to 5*pluses instead of 10*pluses, since missiles 479 appear in groups of 20 or so, this is comparable to normal weapons 480 which are 100*pluses 481distribute 5.1.3 sources 482---------- 4/3 483externs.h: ifdef out definition of errno for MSDOS 484io.c: moved process.h include for MSDOS from middle of file to start 485io.c: in print(), put_buffer(), and move_cursor_relative(), clear msg_flag 486 before printing error message, prevents problems with '-more-' prompt 487recall.c: roff_recall(), don't set normal movement bit near beginning, 488 also delete code that prints 'never moves' if all move bits clear 489spells.c: teleport monster will wake it up 490scrolls.c: reading a second word of recall scroll does not reset timer 491spells.c: wall building now heals Xorns in addition to earth elementals 492spells.c: drain life damage increased from 50 to 75, to match other 50th level 493 wand damages 494constant.h, creature.c, moria2.c, variable.c: defined new class level adj 495 CLA_MISC_HIT and replace all test_hit uses of CLA_SAVE with this, 496 document that this is identical to save, and assumes all values same 497treasure.c: two potions named poison, change first to weakness (lose str) 498---------- 4/4 499save.c: add some __GNUC__ ifdefs so that the UNIX style code will be used, 500 not the code for the broken atari st MWC libraries 501---------- 4/6 502unix.c: two include files, sys/time.h and sys/resource.h are actually BSD 503 specific, put #ifndef USG around them 504---------- 4/9 505desc.c: remove all uses of "%+d", because AtariST/MWC and convex and probably 506 others do not support it 507spells.c: replace_spot(), clear lr flag, so that after destruction scroll, 508 destroyed areas will not be lit by a light scroll in a room 509creature.c: let monsters eat other monsters of equal exp, helps prevent 510 using oozes as treasure factories 511moria2.c: mon_take_hit(), if kill Balrog, always update recall info even if 512 Balrog invisible, since will always know it was the Balrog (winner!) 513recall.c: sleep values too hard to learn, change test from r_wake > sleep to 514 (r_wake*r_wake)>sleep 515-------- 4/13 516creature.c, moria2.c: mon_take_hit() was called within creatures() when 517 monsters were trapped inside a wall, bracket call in creature.c with 518 code to set hack_monptr, and add code to mon_take_hit() to check it 519creature.c: add code at end of creatures() loop to fix2_delete_monster() in 520 case monster died during movement (maybe it was in a wall?) 521externs.h: add DGUX to USG ifdef for the 'extern int sprintf()' declaration 522io.c: added code to save/restore local mode word of tty driver, i.e. 523 TIOCLSET and TIOCLGET ioctl calls 524save.c: for atarist && __GNUC__, call fopen with "rb" and "wb" for binary mode 525io.c, unix.c: for atarist && __GNUC__, don't include <sys/wait.h> 526externs.h: define sprintf as int (), if defined(atarist) 527------------ 4/14 528externs.h, unix.c: three new functions tilde(), topen(), and tfopen() 529 which perform ~ expansion for file names, in externs.h, define open to 530 topen and fopen to tfopen for unix machines 531config.h, dungeon.c, main.c, save.c, unix.c: add support for ANDREW 532 distributed file system, SECURE define in config.h, disallows 533 inferior shells, also instead of giving up setuid priviledges at 534 start, calls ANDREW library functions bePlayer(), beGame(), and 535 Authenticate() 536unix.c: add ifdefs to use select() when compiling for xenix 537------------- 4/15 538creature.c, externs.h, files.c, io.c, main.c, misc1.c, moria2.c, recall.c, 539save.c, treasure.c: 540 more Atari ST MWC fixes, eliminate fdopen(), make loc_symbol() return 541 unsigned char, all (var & long_const) constructs assign long const to 542 temp var first, 543------------ 4/16 544Makefile: fixed problems with 'make install' 545----------- 4/19 546atarist.c: add #include <stdio.h> at start, and #endif at end 547misc2.c: tohit_adj() toac_adj() todis_adj() todam_adj() all used cur_stat 548 instead of use_stat like they should have 549---------- 4/20 550moria2.c: mon_take_hit code of 4/13 wrong, use monptr instead of i at end 551misc2.c: remembering code wrong, add (i < 32) to stop it at end of spell list 552moria1.c: when inven full and take off object, check for object under 553 player before allowing/asking her to drop object 554save.c: for atarist MWC port, ifdef out all of the open() calls, and only 555 leave the fopen() stuff in 556misc1.c: compact_monsters(), don't set delete_any if fix1_delete_monster() 557 is called, because it does not decrement mfptr, call abort() if 558 cur_dis goes below zero (i.e. can't delete any monsters) 559all: run lint on 4.3BSD and SYS V 560constant.h: change version number to 5.1.4 and distribute 561----------- 4/27 562dungeon.c: add prt_map() at top after creatures(FALSE) call for ATARIST_MWC, 563 fixes display problems for some reason 564---------- 5/1 565moria1.c: inven_command(), clear msg line is ESC typed at "Drop all?" prompt 566---------- 5/3 567all: eliminated upd_log(), and plog variable 568doc/*: update all documentation, except moria.ms 569---------- 5/4 570all: visit every subdirectory, create README or ERRORS files as needed, 571 make everything as up to do as possible, split files greater than 572 60K so that they can be posted to comp.sources.games easily 573all: deleted all tmp.* files 574externs.h, moria1.c, moria2.c, et al: moved functions out of moria1.c and 575 moria2.c to reduce their size to less than 60K, many functions not 576 moved were made static 577dungeon.c, externs.h, main.c, misc2.c, save.c, variable.c: new variable 578 to_be_wizard, allows resurrect without entering wizard mode, 579 resurrect sets noscore = 0x1, wizard mode sets noscore = 0x2, 580 prt_winner prints "Is/Was wizard" or "Resurrect" is noscore set 581----------- 5/5 582misc1.c: moved see invisible from slay animal to slay undead weapons 583doc/moria.ms: updated documentation to reflect changes from 4.873 to 5.1, 584 added section which explains crowns, added some sections from 585 Chris J Stuart's BRUCE Moria's documentation 586--------- 5/7 587monsters.c: ogre mage is now evil 588files.c: added extern int error for MSDOS 589moria.ms: proof read it again 590misc1.c: reduce plus to dam for slay dragon arrows from +10 to +3, no 591 longer need such high damages because ptodam is multiplied now 592 when used with right weapon 593Makefile: test and fix 'make install' 594ibmpc/ms_ansi.c: change two escape characters to \033 595mac/moria.r: change many control characters to \xxx, update version info 596 strings to 5.1.5 597constant.h: change the version number to 5.1.5 and distribute 598--------- 5/9 599constant.h, mac/moria.r: change the version number to 5.2.0 600save.c: fix support code for 5.0 savefiles, because of minor version number 601 change, update compatibility code for 5.1 and 5.2 savefiles 602save.c: save/restore value of died_from string 603------- 5/10 604scrnmgr.r, scrntest.r: these files had control characters also, changed 605 '...' to \311 606resource.hqx: recompiled the mac resource files 607macscore.c, mac.c: changed control characters '...' to \311 608all: distribute version 5.2.0 609----------- 5/14 610death.c, externs.h, io.c, ms_misc.c: Turbo C changes, void sleep() instead 611 of unsigned sleep(), don't call reset_term() before exiting, ifdef 612 out definition of sleep() in ms_misc.c, declare signal handler as 613 void not int 614generate.c, types.h: change IBMPC_TURBO_C defines to the proper TURBOC define 615io.c: shell_out(), MSDOS code parameter to inkey() call deleted 616externs.h: count_msg_print() changed from (int) to (char *) 617io.c: get_check(), add code to use 'y' if LINT_ARGS defined, pause_exit() 618 add code to use 'delay' for MSDOS machines 619ms_misc.c: clear_screen(0,0) changed to clear_screen() 620main.c: set stack size for TURBOC by declaring the _stksize variable 621misc2.c: player_saves(), split expression up because MPW C couldn't handle it 622save.c: include time.h for for the Mac, delete var 'i' in save_char (unused), 623 get_char() add code for MAC to return FALSE if savefile doesn't exist 624mac.c: add call to initsavedefaults() in main() 625mac/ERRORS: document problem with mac Makefile 626-------- 5/15 627externs.h: remove decl of py_bash(), which is in moria2.c and static 628--------- 5/17 629dungeon.c: move search_off() call after check_view(), as panel_* variables 630 must be valid before search_off() is called 631-------- 5/18 632all: 7 files did not end with newlines, 5 hqx files, and origcmds.hlp, 633 misc/README also did not end with a newline 634-------- 5/21 635constant.h, version.hlp, moria.r: change version number to 5.2.1 636ScrnMgr.doc: split all lines greater than 80 characters, to make the file 637 more portable 638--------- 5/22 639death.c: in mac sources, there was a 'true' instead of a 'TRUE' 640ms_misc.c: Turbo C sscanf() incorrectly reads a newline from a blank line, 641 add check for newline to code that reads configuration file 642spells.c: door_creation(), called popt() before calling delete_object() 643 which could then invalidate the value returned by popt, moved 644 popt() call after the delete_object() call 645----------- 5/25 646creature.c: fix the invincible/invisible monster bug, multiply_monster() 647 was creating children on top of the parent, thus killing the parent 648 for carnivorous monsters 649death.c, externs.h, generate.c, io.c, main.c, ms_misc.c, signals.c, types.h: 650 change all TURBOC defines to __TURBOC__ 651util/printit: new version of the printit program by Carl Hommel, fixed up 652 to be somewhat more portable and to use only moria defined constants 653-------- 5/27 654player.c, tables.c, variable.c: Turbo C can not accept any file with more than 655 64K global variables, so variable.c split into three parts, also 656 updated all makefiles to refer to all three files 657mac files: all three mac Makefiles modified to delete obsolete references to 658 CInterface.o and CRuntime.o, scrnmgr Makefile modified to automatically 659 combine the two ScrnMgr.c parts, README updated to document a problem 660 with the Makefile not appending resources and text files sometimes 661---------- 5/31 662all: released umoria 5.2.1 663ibmpc/ms_misc.c: corrected warn() function to use va_list, the old function 664 was not strictly correct 665---------- 6/4 666misc2.c: prt_stat_block() must also call prt_study() 667misc2.c: random_object() could create objects outside of map boudaries, 668 added an in_bounds() call to fix 669------------- 6/6 670main.c: changed 'if (p = getenv(...))' to 'if ((p = getenv(...)) != NULL)' 671 to avoid compiler warnings 672moria1.c: rest_on(), add check to make sure rest_num fits in short 673ibmpc/umoria.prj: new file, a project file for Turbo C 2.0 674------------- 6/9 675io.c: HP-UX does not have VEOL2, added #ifdef VEOL2 around its use 676dungeon.c: clear message line after change_character(), since as ESCAPE 677 exit does not 678moria1.c: for 'x' and 'w' commands, clear heavy_weapon flag before calling 679 check_strength, so that always get heavy message when wielding heavy 680 weapon, and never get light message when wielding light weapon 681scrolls.c: identify scroll can move arbitrarily far after ident_spell(), 682 replace simple 'moved one down' check with loop to search until found 683main.c: fixed starup code so that don't get 'savefile doesn't exist' 684 message anymore when starting a new game 685all: apply fix to all uses of long constant with & | << operators to avoid 686 a Mark Williams C bug on the Atari ST 687externs.h, files.c: removed MSDOS declaration of errno from files.c, and 688 remove ifndef MSDOS from errno decl in externs.h 689misc1.c: changed name of variable 'clock' to 'clock_var' to avoid problem 690 with a mac compiler (not sure which one) 691io.c: every io.c file, remove '\0' as alias for ESCAPE from get_com() and 692 get_comdir() (MAC only function) 693moria1.c: light_dam() calls inven_damage(set_lightning_destroy, 3) which 694 gives it a small chance of destroying objects in player's pack, 695 this makes it just like the other *_dam() functions 696spells.c: teleport_to(), add call to in_bound() to make sure player will 697 be teleported to somewhere inside the dungeon 698------------- 6/10 699config.h: add note about using GCC on an Atari ST 700main.c, save.c, undef.c: eliminated the unused _new_log() function 701death.c, dungeon.c, externs.h, save.c, undef.c, variable.c: eliminated the 702 mostly unused log_index variable, the few uses of it were replaced 703 with references to character_saved 704externs.h, files.c, io.c, undef.c: init_scorefile() implemented, same as 705 in umoria 4.87 706main.c, undef.c: eliminate unused function init_files() 707constant.h, moria.r, version.hlp: change version number to 5.2.2 708----------- 6/11 709ibmpc/ms_misc.c: added space to GRAPHICS scanf, to try to eliminate problem 710 with Turco C 711death.c, externs.h, files.c, save.c, variable.c: extensive changes to 712 implement the scorefile, total_points(), highscores(), display_ 713 scores(), set_fileptr(), rd_highscore(), and wr_highscore() defined 714 scorefile holds 1000 entries max, has one sex/race/class entry per 715 non-zero uid, has live characters also 716unix/Makefile: fix the treatment of score file, don't copy over old one, 717 just use touch to create one if it doesn't exist 718undef.c: finally eliminated 719---------- 6/13 720all: lint under 4.3 BSD and AIX 2.2.1 (SYS V) 721scores: readd scores file, since it makes micro distributions much easier 722death.c: modify savefile for single user machine, so that it tries to 723 prevent a single character from appearing multiple times in the 724 savefile, checks for identical names, and killed by = (saved) 725player.c: eliminated the unused dsp_race[] array 726death.c: added code to implement flock() for systems which don't have it, 727 based on code written by CJS for BRUCE Moria 728---------- 6/17 729all: fixes for VMS, define USG for VMS, merge in fixes from Todd Pierzina 730---------- 6/23 731scrolls.c: for curse weapon, call py_bonuses(-1) before clear flags so 732 that attributes will be turned off 733moria1.c: calc_bonuses(), handle AC just like everything else, previously 734 did not add in AC bonus if armor was cursed 735creature.c, moria2.c: doors weren't being broken when bashed, change 736 "randint(2) - 1" to "1 - randint(2)" 737----------- 7/14 738all: merge in some changes indiciated by warnings/prototypes generated by 739 MSC 5.x 740recall.c: compute monster kill exp in long, to avoid overflow of int 741all: added AMIGA support 742amiga/: new directory to hold support files for the amiga 743main.c: variable result was not initialized to false 744------------- 7/15 745all: merge in more VMS patches 746death.c, dungeon.c: fixed display_scores() and 'V' command problems 747creature.c, dungeon.c, misc2.c, moria1.c: new feature '*' rest until 748 reach max mana and hp, print error message for illegal rest count 749all: removed improper define of NULL, new define CNIL for (char *)0, used 750 instead of NULL where appropriate, eliminate strange include orders 751 that the previous NULL define required 752io.c: ifdefed out the include for termio.h, as this caused it to be included 753 twice on some systems (curses.h includes it also) causing problems 754macrsrc.h: changed MAX_RESTART from 37 to 36 755--------- 7/21 756ms_misc.c: fixed reading of empty lines from config file for Turbo C 757-------- 7/22 758io.c: fix Amiga code for flush() 759types.h: reduce size of cave_type structure for Amiga/Aztec C 5.0 760death.c: fix display_scores(), so that it only shows entries belonging to 761 current player when show_player is true 762--------- 8/29 763misc2.c: deleted some redundant code in gain_spells() where it calculates 764 which spells a player can learn 765spells.c: recharge(), could call randint() with 0 or negative numbers, check 766 for these cases before calling randint() 767--------- 9/8 768moria1.c: inven_command(), when drop/remove object and inven/equip are both 769 empty, set inven weight to zero, just to be safe 770dungeon.c: jamdoor(), when jam a door, decrement inven_weight by weight of 771 one spike 772moria1.c: inven_command(), make spikes wieldable objects, fight with them 773 like missile weapons, i.e. they disappear after use 774desc.c: objdes(), add damage multiplier of bows to their name 775externs.h, io.c, misc1.c, save.c variable.c: new option sound_beep_flag, so 776 that players can turn off bad character beep if desired 777desc.c, misc2.c: modify known1_p() to return TRUE for objects which never 778 have a color, modify objdes() to work with the new convention, 779 modify inven_carry() so that objects are added to the inventory 780 sorted by subval if they are known1_p() 781---------- 9/9 782misc1.c: add_food(), fix so that does not use f_ptr->slow to set f_ptr->food 783 value, this makes it much less likely to overflow the food level 784misc2.c: inven_carry(), yesterday's insert in order fix does not work for 785 items which can be unknown1p, only insert items ordered by subval if 786 they are always known1p, i.e. object_offset() returns -1 787externs.h, misc1.c, misc2.c, save.c variable.c: new option display rest/repeat 788 counts, since these counts make resting at 1200 baud or less 789 unbearably slow, people need to be able to turn them off 790store2.c: get_haggle(), let RET default to the last inc/dec amount when 791 haggling 792misc1.c: compact_monsters(), return FALSE if could not delete any monsters 793 instead of aborting, popm() return -1 if could not allocate monster 794 (i.e. compact_monsters() failed), place_win_monster() abort if popm() 795 fails which should never happen, place_monster() 796externs.h: place_monster() now int type not void, 797creature.c, misc1.c, spells.c: fix users of place_monster() to check result, 798 and fail if place_monster() failed, really only necessary for the 799 calls in creature.c, these fixes fix the monster list overflow bug 800dungeon.c, externs.h, misc1.c: change compact_monsters() from static to 801 extern, call it from within main loop in dungeon.c if there are less 802 than 10 spaces left in the monster list, compact_monsters() is much 803 more likely to be successful when called here than when called from 804 creatures() 805----------- 9/11 806signals.c: delete extra definition of error_sig for ATARIST_MWC 807atari_st/README: update with GCC and Turbo C info 808files.c: fix typo, filname1 -> filename1 809--------------- 9/18 810mac.c, ScrnMgr1.c: replace uses of KeyMapLM with GetKeys() call 811------------- 9/19 812misc1.c: m_bonus(), could overflow on 16 bit machines when level >= 263 813 when calculating stand_dev 814death.c, externs.h, save.c: store the encryption byte for each savefile record 815 immediately before it in the scorefile, makes the scorefile more 816 robust in the face of a system crash, rd_highscore(), wr_highscore() 817 no longer pass the encryption byte 818death.c: added version numbers to the savefile 819death.c, externs.h, save.c, variable.c: add max_score to savefile, which is 820 the maximum score the character has reached so far, total_points() 821 modified to use the larger of the computed score, and the value of 822 max_score, this prevents a "(saved)" message on the score file for 823 a dead character, which died having fewer points than when it was 824 last saved 825----------- 9/26 826death.c, externs.h, main.c, save.c, types.h, variable.c: new global variable 827 birth_date, set to time when character created, saved in save files 828 and scorefile, when loading character check to see if the a character 829 in the scorefile has the same race/sex/class/uid/birth_date and 830 its died_from is not "(saved)", in which case this character will not 831 be scored 832misc2.c: print "Duplicate" on screen for such duplicate characters 833all: update all documentation, README, and other misc descriptive files 834all: add fixes for Atari ST/Turbo C 2.0 835all: lint on Sun3/uVAX/MIPS/RT_PC 836recall.c: when printing out depth of monster, print Balrog as 50 not 100 837----------- 10/3 838all: fix all problems reported by maniscan/cshar, except for control-L 839 characters on a line by themselves 840----------- 10/7 841creature.c: mon_move(), cast m_ptr->fy-1 to int, so that negative values 842 will correctly compare to it, in the wall building code 843spoilers: new file, lists spell damages 844misc2.c: prt_experience(), always check whether exp is greater than max_exp, 845 previously did not when player was at level 40 846creature.c: mon_move(), set the recall CM_ATTACK_ONLY bit when a monster 847 should have moved but did not, instead of the old method of setting it 848 when a non-moving monster attacked 849store2.c: get_haggle(), fix bugs in the automatic increment code, also, when 850 reach final offer, set the automatic increment to the required diff, 851 so that player need only hit return to bid the final amount 852moria2.c: tunnel(), before checking for tunneling into a invisible monster, 853 check to make sure player is tunneling somewhere which has an effect, 854 otherwise, player can use this to 'detect' invisible monsters in 855 open spaces by trying to tunnel there 856moria1.c: calc_bonuses(), base AC should always be visible, as long as the 857 item is not cursed 858------- 10/8 859spells.c: td_destroy2(), should not destroy chests, not disarms and unlocks 860 them instead 861misc2.c: put_misc3(), clear_from(14) not 13, was clearing the gold value 862files.c: file_character(), add the "Max Exp" and "Exp to Adv" fields to 863 the info written to a file, to match the on screen display 864files.c: file_character(), set fd to -1, not NULL, code was closing stdin 865 (== 0 == NULL) when could not open file 866death.c: exit_game(), clear character_saved before calling highscores(), 867 prevents inkey() from recursively calling exit_game() when eof on 868 stdin has been detected 869all: released 5.2.2 sources 870----------- 10/23 871death.c: highscores(), must do fseek() after reaching EOF before changing 872 read/write mode, previously only did this for VMS, now do this for 873 all systems 874----------- 10/26 875config.h, death.c, io.c: fix VMS errors, declare 'string' in death.c 876 duplicate_character(), fix typos in other files 877dungeon.c: for VMS, after calling kbhit(), must consume one character 878vms/Makefile: fixed, mostly change constants.h to constant.h 879------------ 10/30 880death.c, externs.h, files.c, save.c: define STDIO_LOADED after including 881 stdio.h, then use it to control declarations in externs.h 882constant.h, death.c: define SCOREFILE_SIZE as 1000, and use it in death.c 883moria2.c: cast_spell(), when don't have enough mana, use 'gods may think you 884 presumptuous' message instead of 'summon your limited strength' 885----------- 11/4 886ibmpc/moria.cnf: add ^M, since otherwise MSDOS moria can't read file properly 887io.c: include stdio.h explicitly, and define STDIO_LOADED, so savefile 888 can be closed when shelling out 889store2.c: get_haggle(), clear increment when invalid increment entered 890store2.c, variables.c: last_store_inc contradictory declarations, changed both 891 to int16 892externs, misc2.c, sets.c, spells.c: set_*_destroy changed to take inven_type 893 pointer instead of tval, modified so that (Rx) items won't be 894 destroyed by attacks of type x 895death.c: for single user systems, use birth_date instead of name when 896 looking for matching characters in savefile 897death.c: MSDOS setmode() needs file descriptor, not FILE pointer 898files/*: removed all TABS, since some systems do not handle them properly, 899 specifically, Turbo C on the Atari ST and IBM-PC 900misc1.c: rings of searching cost was 100*p1, amulet of searching cost 20*p1, 901 change both to 50*p1 902mac/macio.c, ibmpc/tcio.c: modify beep() so that it uses the new option flag 903desc.c: changed the (*2) string for bows to (x2) 904spells.c: slow monster and confuse monster modified to wake up monster if 905 the attacks fails 906spells.c: wall_to_mud() and dispel_creature(), print messages even if 907 monster not visible since the effects are visible/audible 908moria2.c: for fire/acid/gas traps, print the trap message first, and then 909 damage an item 910treasure.c: change name of lose memories potion to lose experience, so it 911 won't be confused with monster memories 912spells.c: trap_creation(), don't create a trap under the player, to prevent 913 strange occurances such as ending up under a falling rock 914moria2.c: tunnel(), when wielding heavy weapon, make tunneling more difficult 915----------- 11/6 916vms/getch.c: New code for kb_hit(), which was tested and works under VMS 5.2 917 the old code did not work for VMS 5.2 918----------- 11/9 919misc1.c: compact_monsters(), distance test was backwards!, now delete monsters 920 farther away first, allow a final pass with distance of 0, 921 never delete the Balrog during compaction 922---------- 11/21 923doc/history: rewrote history file to bring it up-to-date 924misc2.c: gain_spells(), don't need to be able to read spell books if learning 925 priestly spells, don't fail if blind or no light 926death.c: fix #ifdef typo around <time.h> include 927----------- 12/1 928store2.c: when good bargainer, change string to "final offer", and allow 929 return to accept final offer 930player.c: change rogue start inv from Soft Armor to Cloak, so that it is the 931 same as the other non-Warrior classes 932dungeon.c: decrement command count after do_command() instead of before, 933 so that all counted commands will work right, this fixes 3^P 934--------- 12/5 935death.c: display_scores(), fix VMS bug, truncate uid to a short before 936 comparing against the uid in the score file record, also move 937 the uid computation outside the loop to speedup the procedure 938io.c: put_buffer (), for Atari ST, was printing the untruncated out_str 939 instead of tmp_str 940--------- 12/14 941atari_st/curscomp/curses.[ch], death.c, files.c, io.c, signals.c: 942 add Atari ST TC fixes for the new (in 5.2.2) code 943