%%%%% sCthangband Based on Cthangband 4.1.0b and Zangband 2.1.0e Changes are added to the top of this file, so for a chronological order read from the bottom up. sCthangband 1.0.18 * Fix the following bugs: * The game could crash if a keymap was used. * Setting/resetting maximise mode before choosing a template could crash the game. sCthangband 1.0.17 * Create the player on a random staircase on entering a level. * Change existing stairs around when a quest is finished. * Give each dungeon square a remembered feature, and use it to avoid displaying anything when a monster bores through a wall. * Add the ability to record a keymap with the game giving feedback. * Display messages from previous turns in a darker colour. * Delete the character under the cursor when delete is pressed in text prompts. * Only update the "object recall" when manipulating spellbooks. * Describe what effects skill restoration will have on the I screen. * Remove the unused second spellcasting frequency from monsters. * Fix the following bugs: * player_has_flag() may have given unreliable results. * The redraw prefs help command displayed the wrong text. * Restoring wisdom did not recalculate the chi total. * The track_mouse option could reveal the identities of unidentified things. * Aborting at the "choose stat set" screen could crash the game. * The shop restoration help identified mushrooms of restoration. * The game could identify some aspects of random artefacts without cause. * The game identified object activations without cause. * Proportional fonts were laid out incorrectly with -mx11. * Z lines in the pref file gave a false error message on successful parsing. * Referring to the macro for $ in the macro prefs could have bad effects. * The game could give special feelings for more boring levels. * The probabilities on the extra character info screen could be above 100%. * The wild map didn't all fit on the screen. * The player and monsters could be hit twice by a spell effect. * Allies were duplicated on the surface. * Monsters created during the player's turn could act immediately. * Dimension door failed under inappropriate circumstances. * rand_int() never returned a value above 65535 on some systems. * rand_int() could hang if u32b was not a 32 bit type. sCthangband 1.0.16 * Fix the following bugs: * The game hung if it was started without an existing save file. * The keys for increasing stats during character creation were displayed wrongly. * Loading the "previous" set of stats in quick-start didn't work. sCthangband 1.0.15 * Cause ball attacked aimed in a direction to only be stopped by a wall or a visible monster, and those aimed at a target to be stopped by a wall or the target. * List the actual name of a hidden object when it is examined. * Give a "Try" prompt when the player selects an object to sell with a capital. * Allow an ego type to be selected when creating an object in wizard mode. * Set the EASY_KNOW flag for non-random items in the source. * Fix the following bugs: * It was possible to discover the identity of objects the player was not aware of using the preferences. * The unified use command allowed ineligible objects to be used. * Being cut or stunned had twice the intended chance of decreasing stats. * The maximum length of a ghost's name wasn't calculated correctly. * Loading a game which contains more monster races than the current r_info could cause undefined behaviour. * The labels in the extra inventory window were corrupted. * The damage from monster breaths was described incorrectly. * Ego boots, ego elven cloaks and weapons of Law were never created. * No template was given hermetic magic skills at start-up. * Objects generated in dungeons could have the wrong dungeon set. * Dying after recalling into a dungeon could attribute the death wrongly. sCthangband 1.0.14 * Skill improvements become rarer, and then impossible, if the player does enough things without coming across a new object in the process. * An inscription of (e.g.) ~vf on an object causes the "throw" command to attempt to "fire" it instead. * Selecting "z" at an object prompt only selects squelched objects. * No feature can hide the player on the small scale map. * No two features have the same priority for the small scale map. * Objects can have default inscriptions which are given to identified items of that type, or to all similar unidentified items. * Objects get a line in their "examine" text describing where they were found. * The inscribe_depth option no longer exists. * Names can be used for races, templates and sexes in initial stat dumps. * Monster spoilers give as much information as monster memory. * Player templates are defined in an external text file. * Monsters can be set to drop ego items in r_info.txt. * Fix the following bugs: * The SUMMON_KIN flag created a lot of error messages but very little else. * Starting the game with -n gave too many quests. * Town monsters could be created elsewhere at level generation, and nothing could be produced in the town. * Birth options were set to the user-defined value inappropriately on loading. * Gaining a chaos power opposed to another not possessed gave an odd message. * Tried unaware objects never gained an inscription. * spoil_value always gave a value of 1 for unaware objects. * A few chaos powers allowed a target, but only understood directions. * Two directions were ignored when something looked to escape an earthquake. * Functions such as isdigit() and tolower() were called incorrectly. * Aborting an object prompt gave a "no objects" error message. * Non-fatal errors on loading gave a -more- prompt after the message had gone. * Incorrect monster indices, etc., in pref files may have caused inappropriate memory access. * The spirit display on the map screen was squashed and inverted, and wasn't redrawn when a new spirit was contacted. * Aggravate monster scrolls, and most other sources of aggravation, did not affect monster 1. sCthangband 1.0.13 * Monsters do not recover from fear if they have too few HP to survive one of your past attacks on them. * Monsters will not paralyse a paralysed character, and damaging attacks may wake the player. * Generate dungeon-specific monsters asleep at level creation. * Never generate light-sensitive monsters during the day on the surface. * Seal the entrance to the orc tower during the day. * Allow coloured recall messages. * Ignore the "hidden" flag for objects shown in character dumps. * Allow the player to display the spell list of a charm in a shop. * Allow the wizard mode jump command to take the character to the surface. * Create a cheat option to prevent saving when the game quits normally. * Split the UI options into UI and display options. * Add a display option to prevent the game from using "fake monochrome". * Make the description of encumbering armour in the display menu clearer. * Correct/alter some documentation. * Fix the following bugs: * Potions of detect invisible did nothing. * Inscriptions containing ! could crash the game. * Objects were described as "powerful" incorrectly. * Identifying an object didn't always reveal its pval. * The 'z' key could select items with curses the player knew nothing about. * Compiling with BCC still led to frequent crashes. * Characters could get a chaos power on creation if patrons were disabled. * Some indirect help commands did not restore the screen after they finished. * The find command in help often left the searched text off-screen. * The game claimed that the character gained a chaos feature it already had. * Mindflayers could gain tentacles by their mouths and lose them again from their sides. * skip_chaos_feature was always treated as being set. * The player could try to refuel a lamp with itself. * Messages given when destroying part of a stack referred to the total size. * C and c (and possibly A and a) didn't work correctly in the visual prefs. * Skeletons could multiply normal food by trying to eat some from a pile. * Reduced stats were displayed incorrectly on the character screen. * Removing (e.g.) a dagger (+0,+0) when carrying several gives an odd message. * Unidentified objects could have spurious pvals, to-hit bonuses, etc., shown. * Unidentified objects could have a real (unknown) pval shown. * Death by failed mindcraft, etc., were attributed to a random monster. * Pref lines such as "L:blindness:7:-1" weren't parsed correctly. * "quest" was always pluralised in dumps. * project_m() leaked memory if its buffers were allocated. * pause_line() was called with an argument in some main* files. sCthangband 1.0.12 * Dodging blows because of martial arts gives experience in the skill. * A player who is capable of martial arts gains a +5 AC bonus because of this. * Allow chaos patrons to be eliminated with a birth option. * Make the "chaos patron" corruption give extra chaos rewards, if allowed. * Add a special help file for new users. * Find the next copy of a string if a player searches for it twice in a file. * Pressing ? displays the skills help on the skill display screen. * Improve race, template and speed help. * Fix the following bugs: * The game crashed during initialisation if compiled with BCC. * Spoiler files could not be generated. * The martial arts damage calculation was never actually used. * The damage claimed for vorpal weapons was too low. * Too many messages were given if the player has no room to pick something up. sCthangband 1.0.11 * Regain SP and CHI, and become hungry, while resting in a house or inn. * Always benefit from stealth when attacking a sleeping monster. * Take time when climbing the stairs. * Allow staffs the player has recharged as a stack to stack given equal charges whether identified or not. * Prevent two separate unidentified stacks of similar arrows from stacking. * Create "hide" and "reveal" commands to prevent objects the player is not interested in from cluttering up the screen. * Create an auto-squelch display based on Iain McFall's implementation, which hides unwanted objects. * Ensure that starting rings do not duplicate intrinsic abilities. * Remove the pointless "Learn folk magic" option from the magic shop. * Give a special message if the player is both teleporting randomly and unable to teleport. * Allow the player to browse cantrips. * Mention the S key in the general on-screen birth help. * Remove the general options from the "quick-start" prompt. * Prevent the destroy command object list from including known artefacts. * Set up the help file list at start-up rather than searching at each request. * The (e.g.) v command will select an object inscribed @v1 in preference to @1. * Objects on the floor can be selected by number. * Consider critical hits in calculating average weapon damage. * Calculate average martial arts damage fairly accurately. * The last object to be highlighted can be selected with !. * Avoid using energy whenever the player cancels using a magic device. * The game will attempt to increase the size of o_list and m_list as necessary with an appropriate compile-time option. * Give specific help for some spells if the player selects them with a capital letter (as well as requesting confirmation). * Track whether an object has been named in this save file and avoid mentioning them in user interface functions if not. * Make | a keymap rather than a second key for the ~ command. * Understand TARGETS and TIMESTAMP requests from other clients in X11. * Correct the comment in k_info.txt. * Work through the skill display when using the debug "edit character" command. * Use menus to create a specific monster or artefact as with objects. * Turn debug command help into a text file. * Add some more docs. * Indicate with version numbers in custom.txt which options I've added/changed. * Create a general "set this counter to this" function. * Rearrange some code, especially that concerning spells and magical devices. * Fix the following bugs: * Bows got "too many" shots at 100% skill. * Vampiric weapons gave the player "too many" extra HP. * Most distance attacks which affect the floor type (e.g. destroy doors) did not do so. * Recalling into a dungeon and leaving via the stairs could leave you in the wrong town. * Stormbringer and the Hammer of Worlds had the wrong weapon skills. * The game could crash if the screen was redrawn with (e.g.) Ctrl-R and the player did something which affected the surrounding area. * The =g inscription was ignored unless auto_pickup was set. * A quest level could sometimes be generated with too few quest monsters. * The "reset recall depth" question could sometimes be asked twice. * Keys to decrease things on the birth screen did not wrap around correctly. * The numbers in the "nearby monsters" window were wrong. * Setting "spend_points" prevented quick-start from using the auto-roller. * The game could generate "old" save files with too many shops. * Pref file errors at the start were cleared immediately. * Pack reordering moved objects which could be in any order around. * Undefining ALLOW_TEMPLATES prevented the game from compiling. * Objects in shops loaded from old versions were not shown correctly. * The message given after saving all preferences was inappropriate. * The game falsely claimed that un*identified* objects had bad activations. * Vorpal weapons were displayed as causing more damage than they do. * There was no way to create a charm in wizard mode. sCthangband 1.0.10 * Allow the charges of objects in slots to be drained. * Allow inscriptions such as @^A1 to be interpreted correctly. * Allow text to be copied directly from/to the game in the X11 port. * Give information about the square under the mouse cursor in the X11 port. * Give the unique cats distinctive colours. * Give meaningful error messages for some errors which cause beeps. * Give an error message if the "enter pref line" command is not parsed. * Remove confusing age references from the docs. * Omit help text for some options which don't exist as compiled. * Add code to check for some bugs in the options table during initialisation. * Fix the following bugs: * Barbarians could not be selected from the "pick a race" screen. * Branding, but not enchanting, ammunition did not rearrange the pack. * Keymap dumps were the wrong way around. * Some potions could not be created directly in debug mode. * Bad rings/amulets could sometimes gain a positive pval, etc.. * Macintosh-style text files were not read correctly by the game. * Some format strings could return nonsense. * Monster speed boosts were calculated the wrong way around. * Reflected attacks always went down and to the right. * Cone-shaped attacks never caused the stated amount of damage. * Martial arts AC was only modified when the player stopped being encumbered. * The game used the keymap of a keymap to see where the player was moving to. * +, - and the number keys in roguelike mode did not work correctly. * Bones files were not saved correctly. * It was possible to overflow player_name and a macro buffer. * Clean up some code. sCthangband 1.0.9 * Allow the layout of the main window to be controlled from the options menu. * Add an option to use a special character for piles of stuff. * Describe blindness resistance on an item as an immunity (as it is). * Ensure that wands, rings, etc., always get the intended pval, etc.. * Allow monsters to summon other monsters at random again. * Allow recall scrolls, etc., to work properly again. * Make the Fire Phantom a quest monster again. * Allow the lists of shops to be browsed when the player is in the wilderness. * Prevent incorrect object names from being given when selling things. * Prevent a changing window from being shown in preference to a higher priority unchanging one. * Allow main-ibm.c to be compiled again (thanks to Luc French). * Use a signal_aux() wrapper to signal() to allow main-sla.c to be compiled. * Correct various makefiles. * Clean up some code. sCthangband 1.0.8 * Reduce the danger of failing to use a spirit favour. * Make more of the game use the full size of the main window. * Create an extra window to show information about the player's square. * Turn speak_unique into a birth option. * Set the rarities (and, to an extent, the random properties) of ego items from e_info.txt. * Set the chance of producing a random artefact in e_info.txt. * Set the boost to the level feeling from each base item in k_info.txt. * Rearrange the P lines in k_info.txt and a_info.txt so that it looks more like an object description. * Set the article features get in f_info.txt so that you don't see "a water". * Make extra characters at the end of a line in lib/edit cause an error. * List a few more things in the '~' character screen. * Make the 'I' description of non-weapons and objects with anti-magic a bit more appropriate. * Clean up some code. * Fix a few bugs (some possibly fatal). sCthangband 1.0.7 * Create an option to flush input if invalid input is given. * Add instructions for the stat choice screen, and mention them on it. * Fix a bug which prevented old savefiles from being loaded. * Fix a bug which overwrote a monster with the ghost. * Make the game complain if a shop has no valid shopkeepers. sCthangband 1.0.6 * Decrease the number of successes needed to train bows from 10 to 4. * Add Bokrug, the Water Lizard to r_info.txt, and make tyrannosaurs grey. * Change the descriptions of a few monsters. * Add a "character information" knowledge display to show the player's AC and saving throw and the text previously displayed on starting the program. * Allow options to be loaded and saved. * Allow birth options to be set for the next game via menus. * Prevent birth options from being set for the current game. * Store most pref files in a lib/pref directory, and create a ~/.angband/sCthangband to store the rest in on multi-user systems. * List every "category" flag (evil, demon, etc.) a monster has in the monster recall. * Remove the duplication of cheat_live and cheat_skll from cheat_wzrd * Use the width of the screen for the inventory/equipment display. * Allow the screen to be dumped/loaded at any window size. * Allow variable screen size with inventory/equipment lists and screen dumps. * Use line wrapping in the help functions, so that help files display correctly with any window size. * Replace indentation with colour in various help files. * Define dungeons, towns, quests and shopkeepers in external text files. * Set the plurals for monsters in r_info.txt. * Set the priority of a terrain type for the small scale map in f_info.txt. * Define the syllables used for scroll names in an external text file. * Allow files used with get_rnd_line() to have an initial comment. * Add some more documentation. * Clean up some code. * Fix some bugs sCthangband 1.0.5 * Determine whether somewhere is a room for post-creation lighting and AI purposes based on how open the space around it is. * Give the Boots of the Black Reaver a higher price than similar speed boots. * Make the Lucerne Hammer a polearm which uses the stabbing skill to match the real weapon. * Remove telepathy from precognition and being a mindcrafter. * Give the Long Bow of Serpents a x5 multiplier. * Remove lucerne hammers from the temple and add them to the weapon shop. * Prevent permanently cursed randarts from being created. * Include the approximate chance of activating an object with a known activation in the 'I' display. * Use formatted input for the function which adds arbitrary strings for the 'I' display. * Indicate temporary fear resistance/telepathy in the 'Chhh' display with a coloured *. * Change the "change colour here" string in help files to $. * Include pluralisation methods in lib/edit/r_info.txt. * Replace the sval, level and (the unused) extra field from object_kind with an extra field which contains information which changes based on the tval (but is usually 0) and a second level field in artifact_type which is the second level field for insta-arts. * Replace tval/sval identities with k_idx ones in various places. * Remove INSTA_ART. * Allow the skill used by a weapon to be set in k_info.txt. * Allow non-magical food to be added without source changes. * Allow light radii to be changed in k_info.txt. * Allow bows' ammunition type to be changed arbitrarily, and their multipliers set, in k_info.txt. * Add comments to those lib/edit files which lacked them. * Use commas in lib/edit/* to make it easier to work out the prices of objects there. * Represent speeds as "+10", etc., and weights as "1.0lb", etc., in lib/edit files. * Change "Armor" to "Armour" in various places for uniformity. * Save a version string in pref files so that they can be imported into newer versions easily. * Restrict the old rolling routine to quick_start. * Suppress the "It modifies your number of blows by X." for weapons. * Use store_table directly rather than giving each shop a copy of its section. * Replace the various SV_* macros with OBJ_* ones based on index. * Make the colour<=>character conversions use the same table. * Create the (currently unused) "some XXX" description in object_desc() rather than the calling function. * Use the correct symbols for the non-numerical shops in the help files. * Spread out the columns in the visible monster display to fill the space. * Fix some bugs which gave incorrect damage figures during creation. * Fix a bug which prevented the generation of monster spoilers. * Fix a bug which prevented any but the first 12 items on the current page in a shop's inventory from being accessible. * Ensure that format("%s ", format(0)) always gives the expected result. * Show the activation for *identified* randarts. * Show the IGNORE_* flag on a known randart if spoil_art is set. * Prevent names in the visible monster display from overflowing their columns. * Use macros for monster spells rather than the associated magic numbers. * Clean up some code. * Fix some bugs. sCthangband 1.0.4 * Allow 'a' to be used to roll for stats in spend_points display, taking the current stats for minima if use_autoroller is set. Separate rolling out into a separate function. Only use the old autoroller function for quick_start. * Give a scroll_edge option which causes the screen to scroll until the detection radius reaches the corner of the map whatever the screen size. * Calculate the maximum damage an uninjured monster can do via an unresisted breath in monster recall. * Display the symbol used for a keymap trigger even if it has a separate text representation. * Set the length of the pet descriptions to the screen width, disregarding MNAME_MAX. * Add the inscription from both objects to the combined one if two objects with different inscriptions are merged and stack_force_notes_all is set. * Allow some simple scripting when pre-parsing text files. Use this to remove some magic numbers from v_info.txt and make it easy to search based on dimensions. * Also use the scripting to set tval-based flags. * Add an o_base.txt file to contain the framework from which the names of objects created (e.g. "A ? potion of ?"). * Allow the format of ego items and artefacts to be set in their respective text files. * Add object descriptions (based on those in Hengband) for various objects which wouldn't otherwise be described in k_info.txt to that file. * Work out if an unaware object can be expected to have a flag in init1.c. * Give resize hooks to do_cmd_store() and get_item(). Resizing in subsidiary prompts from the latter are not handled correctly at present, however. * Create a logfile.txt file to list a summary for every game which is played in chronological order. * Create a TR1_X15_DRAGON flag to replace the hard-coded flag on Lightning. This means that each object should only have one dragon slaying flag. * Tell the player that objects with R_CHAOS have R_CONF. * Add a somewhat accurate readme.txt, and make lib/file/readme! less ugly. * Make graf-xxx.prf handle unidentified objects in a more normal way. * Modify the code so that it compiles in MS VC++ (thanks to Iain Maclean for his help with this) and hopefully also other compilers. * Add makefiles for bcc, cygwin (tested by Scott Holder) and lcc. * Put main-ami.c in an #ifdef USE_AMI directive to prevent it from contaminating other systems. * Clean up some code. * Fix some bugs. sCthangband 1.0.3 * Allow the map to be nearly as large as the main window, and the top line as long as space allows in many cases. Update the display as the screen is resized in a few cases. * Make "use" print a list of cantrips for a charm rather than giving an error. * If no missile weapon is equipped, the missile damage given on the character information screen is that of the first missile in the player's inventory enscribed with @ff, 0 if there are none. * Replace the main-*.c files with versions based on those in Angband 3.0.0. * Make the level generation loop a bit more efficient. * Unify the initial help files, so that help.hlp is used on every system. * Use a VARIABLE_ARRAYS macro to indicate whether it is safe to define an array the size of which is set at runtime. Use this in many places if it is, falling back to C_NEW() and C_FREE() otherwise. * Fix a bug which prevented the "use racial/other powers" command from working (thanks to James Gordon for pointing it out). * Fix a bug which caused objects to be incorrectly described as being bad for spellcasting/mindcraft. * Fix a bug whereby objects were incorrectly marked as encumbering spells/mindcraft in identify_fully_aux(). * Always display the last message before leaving the level. * Change k_ptr->d_char for flavoured items to ' ', so that they always use the flavour version of everything. * Comment out unused features to prevent them from appearing in the preferences. * Turn a couple of the long sections in play_game() into separate functions. Move the exit point in generate_cave() to the end of the loop. Also move the "give up on autoscum" check to the end of the generation loop, and move a few more things outside the loop. * Fix a bug whereby items which affect strength didn't indicate an effect on how many blows the player had. * Restore the commented sections of makefile.org I'd deleted. Make "make -f makefile.org clean" ignore any missing files. Add a (possibly working) makefile.cyg. * Replace main.c and main-gcu.c with Angband 3.0.0 versions. Make the command line option loop a little clearer. Replace various main-*.c files with Angband 3.0.0 versions (untested). * Use rtoa for everything in birth_choice(), so that the race choice is A-Z, 0-3 everywhere. * Remove all temporary buffers except "silly_name" from monster_desc(). * Fix a potentially fatal bug whereby the size of the object_desc() buffer wasn't fixed, and so the attempt to trim it to a length of ONAME_MAX could affect an arbitrary piece of memory. * Replace the format() calls in object_desc() with a couple of local strings. * Make object_desc() use a lower case "t" in "the". * Fix a missing break; statement that caused a bug when the autosave options were used. * Declare quark_str() to take a u16b, as that is what its input usually is. * Optimise the "find useful ammunition" loop a bit. * Remove the (now unused) strfmt function. * Fix a mysterious bug whereby the boundary walls couldn't be targetted. * Force the number of an entry in visual preferences to take up as much space as the last valid number. * Reduce the number of macros and the amount of special case code from the visual preferences. * Fix several other bugs and clean up various pieces of code. sCthangband 1.0.2 * Call debug commands from process_command(). * Provide context-sensitive help for debug commands. * Fix a bug whereby the races represented by numbers could not be selected, and the range given didn't match the displayed range. * Change numerous arrays which had a size determined at run-time because of z_info into dynamic ones, or ones which have a constant size. sCthangband 1.0.1 * Remove the level feelings delay (although the original behaviour exists as an option), as it can make the difference between being given a level feeling before you clear a level and getting one afterwards. * Separate the magic device skill from the pseudoid one. The latter is now trained by pseudo-identifying items as something other than average, and randomly gives strong and weak pseudo-id at skill levels between 20 and 60. In addition, pseudo-id frequency increases with every point of skill gained rather than every other one. * Create a "hit" command which does nothing else. * Make actions which took either 50 or 100 energy take either half as much or as much as walking a step so that rods can be somewhat useful later on. * Increase the energy per turn from 100 to 1000, thereby decreasing the number of blows per turn a player with 8 blows per turn has from 8 1/3 to 8. * Rename mages as wizards, as I've read stories involving wizards... * Make the quit command messages a bit more in-theme. * Compare the stat effects of an item with those of the currently equipped item in the same slot when examined with 'I'. * Use the a_info and e_info prices for objects even if they have some random abilities. * Add documentation for commands, options and some prompts. * Create a window flag to show help on a command, option or prompt. * Create a z_info.txt file to set the maximum number of objects and monsters, the maximum lengths of their names, the maximum sizes of the other arrays derived from files in lib/edit and the length of the autoroller delay at runtime. * Reset all keymaps with C:---reset---. * Only give stat/ability bonuses in the names of objects if there is exactly one. * Only use the randart valuation mechanism for calculating the value of the random features of an item which has random flags rather than all of them. * Saved stats are now used as the defaults for the autoroller. * Display maximum and current chi total in the character screen, make the other displays more compact. * Use the average discount when piles are combined. * Make the knowledge screens a bit more colourful, with a picture for each entry and a darker colour for dead uniques. As this uses the show_file function copied from ToME, it shares the bug whereby a monster represented by ] cannot have its true colour. * Create an auto_more option to cause --more-- prompts to be cleared immediately. * Create a macro_edit option to allow the use of number keys to edit strings to be turned on or off with a keypress. If this is on, TAB causes the prompt to switch between edit mode and insert mode. If it is off, numbers entered via macros are counted as edit commands, and ones entered directly as numbers to be inserted. * Remove bypass_prompt (off), and allow "p\n" to select the default spirit. * Remove disturb_other (off), as the inscription equivalent is easy to use. * Remove hp_alert (on), as setting the level to 0% works as well. * Update z-virt.c and mai*-x11.c to 3.0.0 version. I haven't changed the others as I haven't tried to get big screen to work with the main map yet. * Unset cheat_item at birth. * Make inscribe_depth apply to every object which is created if set. * Create a "dimension door" function to handle every attempt to do this. * Make identify_fully_aux() use a single array containing both the info[] and info_a[] fields. Use an empty element to indicate the end of the used array. * Remove the redundant f? variables from identify_fully_aux(). * Rearrange init?.c to be more like Angband 3.0.0, except that there is only one local header which is wiped after each file is parsed, the pointer used in most of the parsing functions is passed through init_info_txt() rather than being declared static, and the fake arrays (including a fake info array provided to allow the size of the info array to be determined as it is parsed) remain for most of initialisation. * The game ignores the last few elements of m_list[], k_info[], etc., in a save file rather than refusing to load it. It prints a message as it does so so that the player can abort if removing an item was a mistake. * Remove the redundant object_absorb_2() function. * Use a function to determine the keymap in use, and one to determine which keymap to use rather than looking them up in the code. * Turn makefile.org into the makefile I normally use. * Make the overhead map use as much of the current term as is possible. * Make mystic_armour_aux and ma_heavy_armor() local to calc_bonuses(). * Replace tmpnam() with mkstemp() where available. * Tidy up the printing of inscriptions on an object a bit, only briefly using the format buffer for temporary storage rather than creating several large strings which are usually unused. Remove the call to snprintf() from it. * Make monster_desc() respect MNAME_MAX. * Rename o_ptr as o1_ptr in object_desc(), in preparation for moving most of the attempts to examine the object to an object generated from it by object_info_known(). I haven't started to do so yet, however. * Unsetting flow_by_sound disables flow_by_smell. * Place option_force[] in tables.c instead of cmd4.c. * Make ? give help on a selected option (in a hackish way - I intend to make this sort of thing work by changing the current window display). * Move cheat options into option_info to unify the handling functions. * Remove a few potentially harmful user-initiated buffer overruns. * Create a rand_range_test() function to decide where a constant was in relation to a random range. * Give an informative message when a pref file loads/doesn't load. * Put most of load_all_pref_files() in user.prf, and make this safe to do before rp_ptr and cp_ptr have been initialised. * Objects now lose the IDENT_SENSE_POWER flag as they become better identified, and *identified* items cannot be called "powerful". * Make quark_str(0) return "", as this is often a good thing. * Make item_activation() return an error message rather than a null pointer if no activation is found, remove the attempts to use this function as a guide to whether an object has an activation as identify_fully_aux() attempts to read any null pointer it gets. I don't know how an object got a null activation at present. * Prevent black reavers from disturbing the player simply by moving if disturb_move is unset. This was particularly odd as this disturbance doesn't occur once the reaver does come into view. * Respect SF_SKILL_BASE on saving as well as loading. * Provide a SF_SAVE_MAXSKILL flag to determine whether the total number of skills should be saved. Note that the last skill is forgotten if this decreases. * Make the help for show_details accurate. * Remove HIDE_TYPES from some objects and ego items, and all artefacts. * Put the inner workings of display_player_skills() in a separate function for clarity. * Create separate functions to calculate the energy taken by mindcraft and shamanism. * Remove the do_cmd_stay() call from do_cmd_invoke(). * Separate the handling of spoil_stat from identify_fully_get(). Make it read a few more values from update_stuff() rather than trying to calculate them itself. * Stop spoil_value from giving the real value of an object which has not been *identified* yet. * Fix the "hidden message" problem from being introduced to a spirit. * Fix a bug whereby the first object in a shop's inventory was not checked for stacking with an object the player was trying to sell. * Change the description of classes of monster to account for the changes in what symbol is used for each monster. * Change Term_save() so that several images can be saved from a term at once. This does mean that failing to load a term, or loading it twice, can cause problems. The return code from Term_load() is not handled, although the program should do something if the window has changed size since it was saved. * Fix a bug whereby identified katanas were still called "Samurai Swords". I hadn't realised how simple it was... * Provide a ^U (^Z with roguelike keyset) function which carries out the unified object action whether or not unify_commands is set. * Change the "Enter shop" key to ^E so that it can have a macro assigned to it without disruption. * Remove the time/date display from do_cmd_version(). As they were based on a macro, rebuilding this file every time was becoming annoying, and not rebuilding it made it inaccurate. * Stop window_stuff() from being called in the middle of a macro. sCthangband 1.0.0 * Use an external program to generate externs.h in such a way as to minimise the number of files which need to be recompiled as externs.h changes (using ccache as much as possible). * Cause the level size to be independent of auto_scum. Now dungeons too can experience the wonder of 5 minute level generation. * Add a few warning options to the makefile. * Fix some bugs. 30/4/2002 (largely original) * Indicate in 'I' which helmets/gloves may/do inhibit magic. * Give the damage range for many of the spells in monster recall. * Gather together similar terms (e.g. resistances) on one line in 'I'. * Give home info, detailed object descriptions and a list of dungeons finished in the character dump. * Cause text screen dumps to be loaded/saved correctly regardless of the characters used. * Allow identical stacks to be rearranged to give the larger 99 objects. * Incorporate the show_file() function from ToME, and use colour in various '~' screens. * Indicate the effective slays and the real movement and attack speeds in monster recall. * Show the failure chance for a spell, favour or mindcraft power. * Display the shops in a town with "~8", and provide a window display to show the current one if appropriate. * Display obvious flags for objects which have been tried. * Prevent the player from attempting to sell objects the shop has no room for. * Cause flavoured objects to use the flavour's colour if the colour of the object is black, and its symbol if a space. * Only give vampiric messages if the object is unidentified or the player gains HP. * Display the shopkeeper's relative greed in a Chr-independent way. * Cause '^W' to rotate the pile of objects the player is standing on. * Cause 'x' to select the cheapest object at a prompt. * Cause 'q' to assume 'n' for all further prompts at "Pick up [y/n]" prompt. * Cause (e.g.) "F:---reset---" to reset the features * Holy orb, malediction and hellfire now mark unaffected items as uncursed. * Fix some bugs. 30/4/2002 (copied from the Cthangband 4.1.1 beta by David Thornley) * Prevent the "uncontrollable storm" mindcraft failure from using more chi than the player originally possessed. * Change golems to A, ghouls to G, icky things into people of Ib and quiver slots to archer mushrooms. * Detect doors/stairs via precognition at level 15, and invisible monsters at 20. * Make small children vanish after their worship attack. 2/3/2002 * Display the small-scale map in a square which is as large as will fit in the window, and add a world map beside it on the surface. * Use the equipped bow by preference to a plain one when calculating the damage caused by a missile. * Indicate a square which has been checked for traps but not seen with an umber dot. * Add a window display for the list of shops in the current town. * Give RES_CONF to objects which have RES_CHAOS. * Use a set of flags to indicate the save file version to make more precise manipulation possible. * Display the value a cursed object would have if it was uncursed instead of listing the value as 0 (where appropriate). * Display skills which have been drained, and can be increased by training in orange. * Indicate options which have no meaning because of the settings of other options with "N/A", and prevent them from being selected. * Allow visual option fields to be set to a number rather than only increased or decreased one number at a time. * Print the full store inventory regularly to simplify store manipulation. * Prevent an aborted enchantment attempt in a shop from costing money. * Prevent shops from destroying items sold to them. * Track which objects are known to have features not obvious from their identification status (e.g. stat mods for unidentified objects). * Use grey price tags for objects the player cannot afford at the given price. * Fix some bugs. 28/11/2002 * Inform the player if an attempt to dig is doomed to failure. * Indicate the path a beam would follow towards a target in a similar way to ADOM. * Replace the * symbol for a dungeon/tower with a more specific one. * Inform the player if an item inscribed with !! has finished recharging. * Display all stats above 18 as (e.g.) 23/45, using XX/XX for stats above 18/8199 (!). * Use an UNUSED macro to indicate unused parameters and suppress warnings given by GCC. * Use environment variables for fonts under X11. * Fix some bugs. 18/7/2001 * Allow non-primary windows to display several different displays based on the players preferences and the in-game situation. * Add a display for the visible monsters list (adapted from Eyangband's). * Add a display for the player's current skills. * Add a display for individual objects, showing as much of the 'I' screen as will fit. * Allow 'y' to select the most valuable object at a prompt if values are assumed to be known. * Increase the price of charisma potions to 8000. * Give a special message at the last level of a dungeon in the absence of a quest. * Allow the wizard object creation command to take a k_idx parameter. * Allow the player to specify flags in k_info.txt which each subsequent object with a tval will have. * Remove the hates_*() functions, relying on the object to have immunities instead. * Show the player the flags an unaware object must have if spoil_base is set. * Use object_desc() for all object name strings instead of using k_name fragments for some. * Use the lowest possible value for an object in object_value_base() in the absence of a specific listing. * Fix some bugs. 6/6/2001 * Show the stat breakdown on the second character screen during point-based generation. * Don't tell the player that a quest monster has died unless he saw it die or all of the quest monsters in that quest are now dead. * Create a u_info.txt file to store how the game refers to unidentified objects, and categories of identified objects. * Replace "It cannot be harmed by acid", etc., with "It can be harmed by acid.", and include the immunity derived from tval in this. * Fix some bugs. 1/6/2001 * Display the average damage of melee/missile weapons on the character information screen. * Show the average damage caused by weapons with various slays on the 'I' screen if allowed. * Provide an option to give a confirmation prompt whenever the player tries to wear an object which isn't known to be uncursed. * Provide an option to disturb the player at sunrise on the surface. * Change the maximum length for an object description to 120. * Fix some bugs. 21/5/2001 * Allow the character to be born on 29th February. * Show a few potentially useful stat effects on the point buying screen. * Let the player access the options menu and help from the point buying screen. * Allow the player to modify monster memory colours in the visual preferences. * Remove the preferences question from the stat prompts and make the quick start and initialisation completed prompts optional. * Allow equipped objects to be drained and recharged, and uncursed equipped objects to be thrown, destroyed and turned into gold. * Inscribe unaware objects as "poss. cursed" if an object of the same type has previously been found to be cursed. * Allow objects to be automatically inscribed with the current dungeon level on creation. * Create an option to allow objects with different inscriptions to stack. * Allow spirits to be selected by number where (e.g.) spirit 2 is always the second life spirit. * Make unique monsters change colour as the 'l' command is used. * Describe an artefact as "The Foo" rather than "Your Foo" in enchantment attempts. * Allow saving to take place without printing a message. * Display the object symbol of unidentified shop items in TERM_SLATE. * Make a list of the monsters which have killed characters in this save file. * Allow unidentified objects with 0 charges to stack with othewise similar identified ones. * Display the amount of money the shopkeeper will give you for an object with a standard base price. * Display known information about items which have not been *identified* on the 'I' display. * Include the symbol of each monster in the relevant '~' sections. * Make traps which have the same symbol indistinguishable. * Include the failure chance in the "use power" menu. * Give more appropriate messages when level teleporting in a tower. * Give a more appropriate message when polymorphing a shapechanger. * Display missile damage modifiers on the second character information screen. * Make a note of inscription in the message history. * Make amulets of adornment remove the food requirement in wizard mode. * Give items with fiery auras the permanent light flag. * Create a macro for dun_level+dun_offset. * Fix some bugs. 9/3/2001 * Allow an attempt to (e.g.) inscribe a previously inscribed object to modify the existing inscription rather than replacing it entirely. * Describe the things which happen when a monster dies in a new "E:..." field in r_info.txt, allowing ordinary objects, artefacts, monsters, explosions and messages to be given some or all of the time a monster of a given race dies, and mention it in the monster memory. * Give an option to disturb running whenever the character would otherwise change direction. * Don't list features which mimic other features in '%'. * Give the full name of an object in 'I' so that long names are not such a problem. * Include the dungeon offset in the level number on the high score table. * Save and load sets of stats in point-based character generation with 'f' and 'l'. * Change the Star Essence of Polaris from a '!' to a '*'. * Allow the player to add/remove a point from a random stat in point-based character generation with 'z'. * Improve the handling of plural monsters. * Leave a record when the player answers a [y/n] prompt. * Mention in the artefact spoilers when an artefact has a random power or resistance. * Allow the player to make the game display obvious modifiers an item has. * Allow the player to make the game display the effects of restore stat potions. * Give some appropriate help for shop services. * Prevent stairs from destroying objects at the end of a quest. * Display blessing, stone skin, etc., on the first character screen. * Make death by trap door occur on the lower level rather than the upper one. * Allow the player to edit the tval, sval and name2 in the debug object editor. * Allow the player to create any monster at all in debug mode. * Randomise the order in which artefacts are chosen in make_artifact() and make_artifact_special() so that equiprobably artefacts are more feasible. * Use letters for non-numerical shop doorways for easier recognition. * Create an A_MAX macro to make it clear when 6 refers to the number of stats. * Add a new message for cheated shopkeepers. * Fix some bugs. 17/1/2001 * Create a "Spoiler Options" menu which allows the player to control whether he is assumed to know the guaranteed features of base objects, ego items, artefacts, the value of objects and monsters. * List the amount of energy used in the last turn on the main screen. * Choose a worthless/cursed item from the object prompt with 'z'. * Separate the quick_messages option into one which applies at [y/n] prompts and one which applies at -more- prompts. * Prevent the player from selling unidentified items to a shop with no empty space. * Only ask how many of something the player wishes to sell to a shop if the character can sell at least one of them there. * Calculate the average social class for a race when using point-based generation. * Display each race's experience penalty during point-based generation. * Give a single "It cannot be harmed by the elements." in 'I' where appropriate. * Call Smeagol "he" rather than "it" when he can't be seen. * Fix some bugs. 15/12/2000 * Make the monster recall display more colourful. * Remove the immunity from destruction objects in pouches had. Now they are treated as single inventory items. * Give a minor disturbance when a spirit ceases to be annoyed. * Put the "is it an artefact?" test in a single macro. * Rename the "broken" inscription as "useless". * Rename the "on sale" inscription as "50% off". * Only fail to wear a ring if both fingers contain a cursed ring. * Fix some bugs. 12/12/2000 * Indicate when an object is known to be uncursed or unbreakable. * Provide an option to automatically select the first spirit at the "select a spirit" prompt if only one is available. * Create an option to allow various list prompts to be opened automatically. * Display temporary resistances in the "Study" field if applicable. * Cause items inscribed with "=g" to be picked up regardless of carry_query_flag. * Make attempts to call upon an annoyed spirit waste time but do nothing else. * Fix some bugs. 4/12/2000 * Create an AUTO_CURSE flag to make an item become cursed immediately on wearing, and a few turns after it is uncursed. Apply this flag to Stormbringer, but nothing else. * Cause 'x' to toggle a selected binary option in option menus. * Fix some bugs. 17/11/2000 * Create Stormbringer as a normal artefact rather than a fake randart. 8/11/2000 * Implement fractional numbers of blows per turn. * Simplify the buying process for players using autohaggle. * Allow the race and template to be changed during point modification, and give weapon damage as if an appropriate weapon was wielded. * Indicate the final dungeon on the tombstone. * Cause an inscription of '%' to set "stack_force_costs" for that item alone. * Show the AC from not wearing an item in each armour slot for martial artists. * Provide an option to show the known information for artefacts on the 'I' screen. * Prevent quitters from being shown on the high score table with a compile-time option. * Cause trying to walk into a tree or water to take no time. * Inscribe a permanently worthless uncursed item as "worthless". * Fix some bugs. 25/10/2000 (first version maintained by Kieron Dunbar) * Display skills above 0% which can still be improved in yellow, and use square brackets to indicate when the player reaches the current maximum for a skill. * Use a dark green number rather than a 's' to indicate sustained and increased stats. * Fix a bug which prevented a shop service from using your last AU. Cthangband 4.1.0 (the first under the maintainership of David Thornley) * Any character starting with Shaman skill gets one free spirit bound. * Any character with hermetic magic skills will get one free spellbook to start. * Pets will not be targetted by the "*" key. * There are new base skill levels, essentially the level learnable at 0', and these are subtracted from the skill learnable at the current dungeon level; for example, it is possible to raise Toughness above 3% at 50'. * Raising Martial Arts skill now does not depend soley on Close Combat skill. * Certain changes have been made to allow the roguelike keyset to work better. * Characters with sufficiently high missile skill get extra shots, depending on weapon type. The most shots are available with a bow, next a sling, next a crossbow. * There is now a visual cue, in the "depth" area, as to whether you are in a dungeon or tower. * Corrected bug whereby characters with Mindcrafting of 80% or better did not get ESP. * A character trying to cast a cantrip from a charm unsuccessfully may get no effect, rather than destruction of the charm, at very low skill levels. * Additional documentation has been added. Most of the differences between Vanilla Angband and Cthangband are now in the "Help" files. (Thanks to Kieron Dunbar for the following ideas, and, sometimes, code.) * The display has been changed to show spirits and how annoyed they are. * *Identified* weapons show what skill they need. * The restriction on a 6% failure rate to learn magical skills has been replaced by a restriction that character skill must be no more than 50% greater than the minimum skill for that spell, mindcrafting power, cantrip, or spirit favor. * Minimum annoyance for spirit favors has been raised to 2, so a spirit will not immediately become placated for the next turn. Cthangband 4.0.1 * Wizard Mode moved to 'Cheat Options' page. * 'graf-new' flag removed since we only have Adam Bolt tiles these days. * Paths are now lit like floors. * Startup options have their own option page, to reduce the number of questions the player is asked when creating a new character. * Dungeons (but not towers) display offset depth, rather than true depth. * Player ghosts now use graphics if possible. * 'Dungeons' may now be towers (tiny levels heading upwards) as well as caves (larger levels heading downwards). * 5 new dungeons added. * Dungeons now have a 'bias' towards a certain type of creature. * Charm destruction and identify staff bugs fixed (thanks to Greg Wooledge). * Bug in spell energy calculation fixed. * Skills can only be improved if you are not bored (i.e. there is a minimum depth requirement based on your current skill value.) * Hedge magic is now easier to learn. * Skills are now slightly randomised on character generation. * Fixed bug with 100% Toughness reducing your hitpoints. * Spirits now have elvish/hobbitish names, rather than Cthuloid. * Character dump now dumps last 10 messages (so you can see how stupidly you died). * Problem with 'missing' options fixed. * 'Wizard Mode' flag is cleared with cheat flags on character creation. * Extra cheat option - 'cheat_skll' to view skill checks. * Toughness is only increased when you lose more than 1/20th of your current hit points in a single hit. * Magic skills only improve if there was a 10% failure chance (or greater) for the spell/favour/power/cantrip. * No experience is gained on the surface, only in dungeons * Attacks only improve your attack skill (and/or martial arts) if you have less than 75% chance to hit. * Attacks with mutations (Horns, Tail etc.) give experience to your 'close combat' skill, not your weapon skill. Cthangband 4.0.0 * Windows version has updated menus and faster repaints and can now use monospaced system fonts as well as bitmap fonts. (From Tim Baker's version of Kamband.) * Player breath weapons (from dragon plate or mutations) and 'wands of dragon breath' now use cone shaped attacks. * Bug in 'unified commands' fixed so that objects on the floor no longer get prompted for twice. * Angels (and their uniques) have been removed and replaced with extra Cthuloid entities. * Implemented Drangband style player ghosts. * Corrected 'time of day' algorithm and added time display. * Added Eric Bock's code to combine similar messages in message recall. * Monster breaths are now cone shaped, rather than ball shaped (from Zangband) * Speed system cleaned up (a lot) with regard to spellcasting. * 'help.hlp' is now system specific ('help-dos.hlp' etc.) so that it can point to a different set of files for the different interfaces and systems. * Windows version asks for a savefile name when starting a new file, rather than automatically naming it after the character that is generated. * 'New Game' and 'Load Game' on Windows interface changed to 'New Savefile' and 'Load Savefile' as some people were confused and thought that they needed to use the 'New Game' command after they had died. * 'Help' menu on Windows interface updated. * Hedge magic added as a third type of magic. * Shamanism added as a second type of magic. * Mindcrafting no longer uses 'Mana' but uses 'Chi' instead. * Levels and classes removed and replaced with a skill system. * Missing directories are re-created on Windows version. * Added Zangband's view centring code. * Reorganised and cleaned up 'options'. * Added (and modified) ???'s point based stat generation code. Cthangband 3.1.2 * Fixed bug with Corporeal Books not stacking properly. * Most object commands (e.g. 'q'uaff, 'z'ap, 'E'at, 'b'rowse, etc.) have been unified into a single 'u'se command that will do whatever is most appropriate for the item * Added 6 'Pouch' equipment slots that can each hold a scroll, potion or wand. Items readied in a pouch only take 1/10th of the time to use that normal items do. * Message about 'Library' when trying to gain spells changed to 'Bookstore' as it was confusing people. * Most (but not quite all) documentation files updated. * Stats over 18/100 are no longer displayed as 'silly' percentages. * Class 'sub-names' (used in documentation) are now used in game as well. * Vault code updated to properly handle large array of vaults. * Chopping down of trees and bushes is now included in 'repeat obvious commands'. * Characters who can't learn spells are no longer asked to study in the library. * Roads added between towns and forest made denser. * Chris Weisiger's 'v_info.txt' file updated to the new version. * Cleaned up lots of dead code in Load/Save routines. * Fixed bug in home which gave the wrong inventory after resting for the night. Cthangband 3.1.1 * Chaos Patrons now have more descriptive names on the 'C'haracter display, and have been changed from the 'Warhammer' Chaos Gods to the 'Glorantha' Chaos Gods. * Adam Bolt's Graphics for bolt and ball spells are now used. * Eric Bock's bias remover for the RNG added. * Chris Weisiger's new 'v_info.txt' file used. * 'Mutations' renamed 'Chaos Features' to make them more in-genre. * 'Wizard Help' command ('A','?' in Wizard Mode) added to list wizard commands. * 'Debug' mode and 'Wizard' mode combined to make things simpler. Wizard commands are now accessed through 'A' in wizard mode. * Hack added to 'fix' savefiles saved from versions with guardian bug by resurrecting dead uniques so that they can re-used as guardians. * Guardians now drop their normal treasure as well as extra guardian treasure. * Last vestiges of hangs from invalid guardian placement now removed (hopefully...) * Uniques that appear as guardians now have their escorts with them. * The Inn will now sell scrolls of "Satisfy Hunger". * Examining store books now tells you what's in them. * Wilderness now uses the same lighting model as the town. * Secret doors may now be locked or jammed once found. * Huge code clean-up should make porting easier. * Wilderness map is now coloured. * 3x and 2x experience for first kills downgraded to 2x and 1.5x. * Chaos-Mage class added. * Windows version no longer looks for the unused '8x8.bmp' file. * Druid class added (a specialist nature priest). * Removed sound/midi options from main options menu as they did nothing anyway. * Fixed bug in 'Mutate Body' spell so it no longer always gives the same mutation. Cthangband 3.1.0 * Priests and Rangers no longer get Sorcery as it is to 'magey' for them. * Water now behaves properly (you can see over it and cast spells over it). * Occasional crashes when moving diagonally off edge of wilderness grids fixed. * The 'Monk' class has become the 'Mystic' class, and is now based on corporeal magic. * A new realm ('Corporeal') has been added. All the spells are self- affecting. It has a reasonably large overlap with Life (for the healing spells) and Planar (for the movement spells). It has sensing spells *very* early. * Characters will no longer start in the town of Nir. * The 'M' key displays a proper wilderness map with town and dungeon locations. * Allies (formerly called 'Pets') can move from level to level with the player. * Characters are now given randomly generated names when created. * Vampires no longer start on the stairs (no longer necessary now they start at night). * Experience for creatures now varies depending on how many you have killed. * Ironman option added. * Long Stairs is now a standard option, rather than a character generation option. * New speed system implemented. * Shops now have a unique set of owners each, rather than a selection per shop type. * Dungeon name printed with level feeling. * Quest info moved from 'Q' to 'F' with level feeling. * Option for always having small levels added. * Fixed bug in home that turned it into an inn after resting for the night. * Breeder dying code removed (but generation limit left in). Cthangband 3.0.1 * Keys 'O' and ''' mapped to racial power and time respectively in Rogue- like mode. * Robert Ruehlman's 'Equippy Chars' code added. * Monsters can now cross bush tiles. * Jeff Duprey's extra 52 mutations added. * Keldon Jones' patch to automatically update '.raw' files added. * Trees, bushes and water now handle tunneling correctly. * 'Quick Start' option generates an entire character with a single keypress. * Windows version can cope without its '.ini' file. * Robert Reuhlman's improved pet AI added. * Preserve mode now preserves artifacts left in dungeon when Ritual goes off. * Changing the character name no longer creates a new savefile. * Menu structure for Windows version rearranged. * Source code fixed to make Windows version compile properly and use Adam Bolt graphics. * It is now possible to rest for the night (or day) at your home. * Undead races now start the game at night. * Dungeon names displayed on wilderness grids to make dungeons easier to find. * Bug in display code preventing unidentified potions/scrolls being shown properly in text mode fixed. Cthangband 3.0.0 * Finding secret doors earns 1xp, like picking locks. * Wilderness areas with dungeons have tougher monsters to make it easier to find the dungeon entrances. * 15 different dungeons added, each with their own Guardians. * Wilderness levels added. * Extra functions added to most shops. * Pawnbroker, Inn and Hall of Records added to town. * QUESTOR and FORCE_LEVEL flags for monsters replaced with GUARDIAN and ALWAYS_GUARDIAN as part of clean-up of quest code. * Many more cosmetic changes to artifact names and most text files to keep them in genre. * Breeders can now only breed to 10 generations. * Breeders can no longer be Quest monsters. * Tim Baker's Easy-Angband code added. * Robert Reuhlman's quest generation algorithm used to tone down the level of quest monsters. * Fixed 'Infinite Paralysis' problem with floating eyes - They will now do at least 1pt of damage with each hit. * Store Owners' Purses have been altered (generally but not always an increase). * DOS version now has Adam Bolt graphics for different race/classes of the player. * Bug in Pattern Vault fixed - it now cannot teleport you below a quest level. * Breeders now have 1 in 5 chance of dying off instead of reproducing, so they don't get out of hand quite so much. * Level feelings are now only given after 2500 turns (about 250 moves) instead of immediately on entering a level, but there is no longer a prerequisite of staying on the previous level for a period of time. * Hit-Point rolls changed to give fixed totals at 50th level, making 'Life Rating' redundant. Cthangband 2.1.0 (12/7/98) * Huge amounts of cosmetic changes to remove Zelazny stuff and replace it with Lovecraftian. * Warrior-Mages can now choose Sorcery. * Monster-Health bar now gives status of monster as text. * Heino Vander Sanden's quest code ported from Quangband with minor changes. * Out of genre 'Rockets' replaced with 'Shard balls'. * Most 'silly' monsters removed or replaced. * Multi-stair option for quick level ascending/descending. * 'How many?' question for multiple objects now defaults to all rather than 1 (except for buying things). * Adam Bolt's graphics used for DOS version. * Lots of redundant code removed.