artrand.diff randomises the order in which artefacts are selected in make_artifact and make_artifact_special (which are combined because they're almost identical anyway). Pre-requisites: (stormy.zip/stormy.diff) autohaggle3.diff fixes a bug in autohaggle.diff which treated the pawn shop like a shop in terms of object descriptions rather than like the home. Pre-requisites: diff1212.zip/autohaggle.diff diff1701.zip/autohaggle2.diff birthsave.diff causes the 'f' key to save the current stat set as the default for that combination of race, class and maximise mode setting, to be loaded at the beginning of the spend_points process. To make room for the reference to this on the bottom line, I have also allowed the player to finish on a positive number of points. As diff1701.zip/initgold.diff gives the player a running total of his gold supply, the player will have a realistic idea of whether it's worth doing if both are applied. It also rearranges point_mod_player a bit to display everything at the end of the loop, and separates out the display routine into a separate function. This is a separate process, but I was doing both at the same time, so... Pre-requisites: 0811/birth.diff 1701/birthday.diff 1701/xpf.diff 1701/initgold.diff 1701/social.diff 1701/cleanup.diff birthskill.diff removes the unused race parameter from get_starting_skills(). Pre-requisites: 0811/birth.diff 1701/birthday.diff 1701/xpf.diff 1701/initgold.diff 1701/social.diff 1701/cleanup.diff birthsave.diff birthrand.diff provides a key (z for no particularly good reason) which adds or subtracts a point from a random stat. I haven't mentioned it in the display because I don't really know where to put it... Pre-requisites: 0811/birth.diff 1701/birthday.diff 1701/xpf.diff 1701/initgold.diff 1701/social.diff 1701/cleanup.diff birthsave.diff birthskill.diff amax.diff places a few references to A_MAX (defined as 6 in birthrand.diff) in the code where appropriate. I think that everything that deals with stats as a group should use it in order to make it clear that the 6 represents the number of stats rather than anything else, but I only did birth.c and types.h before I got bored... Pre-requisites: 0811/birth.diff 1701/birthday.diff 1701/xpf.diff 1701/initgold.diff 1701/social.diff 1701/cleanup.diff birthsave.diff birthskill.diff birthrand.diff vampire.diff makes vampirism (and its associated message) occur before a monster's hit points are lost. It doesn't move the polymorph check, so attacking with a chaotic weapon can still be a very strange experience. Pre-requisites: none deathevent.diff allows greater control of what happens when something dies through info files. It currently allows items (whether normal, ego or artefact) or monsters to be created on death, the monster to explode when killed, and messages to be displayed. As some of these effects are not present in Cthangband 4.1.0 (I decided to make it general enough to handle anything race-specific which happens when something dies in Pern 4.1.5 or Z 2.5.4), I added events to cause singing, happy drunks to sometimes drop a bottle (if you ever wondered why they were so happy...), and scruffy little dogs to sometimes drop either a bone or a stick. It's just more rubbish, but you're hardly snowed under with it in the towns. Aside from anything else, this patch does make it so that you could call every monster in the game "the Emperor Nero" without it changing what happens when anything dies (renaming things will still change a number of other things, of course). Pre-requisites: stormy.zip/stormy.diff diff1212.zip/dropspecial.diff deatheventtext.diff makes use of this to provide a text string in the monster memory and the monster spoilers when appropriate. Pre-requisites: stormy.zip/stormy.diff diff1212.zip/dropspecial.diff deathevent.diff plurals.diff distcorner.diff creates an option to disturb running when the game would have the character run around a corner. Pre-requisites: None editstring.diff makes changing inscriptions easier by allowing '1', '4', '6', '7' and '.' to act as cursor movements and a delete key when used via a keymap (as probably happens with the numeric keypad). There may be cleaner ways of doing it, but this works for me. Pre-requisites: None features.diff makes the % command skip features which mimic other features. Pre-requisites: None fullident.diff lists the name of an item in full with the 'I' key if it is un*identified* so that this can be used to find out the full name of an item whose name is too long to be displayed in the inventory or equipment list (and yes, I am sure that there's already a way to do that). Pre-requisites: None level.diff adds the dungeon offset to the level number on the high score table. Pre-requisites: None option2.diff enables the 'x' command from option.diff to work in the cheat menu (which has its own routine). Pre-requisites: 0412/option.diff phial.diff changes k_info.txt a bit so that the Star Essence of Polaris is represented by a *, and both unidentified Star Essences are worth 10k. This means that, if you apply both this patch and artrand.diff, you won't be able to tell which is which without identifying it. Or wielding it and noticing that you didn't just get a bit faster. Hmm... Pre-requisites: none pickcursed2.diff changes the way in which pickcursed.diff works. Instead of choosing the first cursed or worthless item, it chooses the first broken item, and only chooses cursed items if no worthless ones are present. This means that you can use it to remove broken items of equipment without it selected the cursed armour you are wearing. It also now ignores items inscribed with !k (so that it doesn't keep selecting the plain gold ring you are wearing). Pre-requisites: 1701/pickcursed.diff (1701/pseudoid2.diff etc.) plurals.diff causes plurals to be handled correctly in do_cmd_knowledge_kill_count() and allows an indefinite article to be added to a monsters name if required. It creates a separate function to give the appropriate name in this stye, so that a level guarded by "a pile of creeping copper coins" would be described as such. Not that such levels can exist, of course... Pre-requisites: None promptrecord.diff causes [y/n] prompts to leave a record in the message history. It makes autohaggle.diff work better (the price of the item is only given in such a prompt, never directly in a message), and seems like a good idea anyway. Pre-requisites: 1212/autohaggle.diff randpower.diff adds the random powers and resistances of objects to the artefact spoilers, which it does by matching artefacts to powers in a_info.txt rather than xtra2.c. It doesn't affect ego items because ego items can't be pigeonholed so easily. Pre-requisites: diff1701/artpower.diff, stormy.zip/stormy.diff servicehelp.diff provides a ? prompt for shop services which gives you some information about what each one does. Pre-requisites: diff1212.zip/autohaggle.diff diff0811.zip/worthless.diff diff1212.zip/saves.diff diff1212.zip/autohaggle.diff diff1512.zip/pseudoid.diff diff1701.zip/autohaggle2.diff autohaggle3.diff shops.diff replaces + as a shop symbol with letters for easier recognition. Pre-requisites: None shopcurse.diff changes one of the messages shopkeepers give. Just because... Pre-requisites: None spoilmod.diff creates an option on the spoiler menu to show some obvious things (stat modifiers, infra-vision and extra blows, shots and might) on the character information screen if you can easily discover them anyway. It only shows extra might there automatically if spoil_base is set because a x5 crossbow is only strange if you expect something else. Pre-requisites: 0811/objknow.diff 1701/spoiler.diff (others as necessary) spoilstat.diff provides some spoilers about the effects of restore stat items. It doesn't yet accurately describe other stat modifications. Pre-requisites: 0811/objknow.diff 1701/spoiler.diff (others as necessary) spoilvalue2.diff corrects an oversight which caused value spoilers to be suppressed in shops even when auto_haggle was not set. Pre-requisites: 0811/objknow.diff 1701/spoiler.diff 1701/spoilvalue.diff (others as necessary) stairs.diff prevents newly-created stairs from destroying items. It's a simple enough task to prevent them from destroying anything valuable, so this simply avoids forcing the player to go through a silly routine to do so. Pre-requisites: None tempfx.diff shows things such as blessedness and stone skin on the first character information screen. The experience numbers (which it replaces) are still shown if the history is being displayed or if no such things are affecting the player. Pre-requisites: None trapdoordam.diff causes the damage from falling through a trap door to occur after you change levels. The actual falling isn't that painful, after all... Pre-requisites: None wizitem.diff allows more fundamental editing of an item by numbers, most usefully by providing a way to set the ego type. This means you can make impossible items as there's no easy way of telling what ego types an item can have within the game. Pre-requisites: None wizmonster.diff enables the player to create any monster in wizard mode, including dead uniques and monsters in fixed quests. Pre-requisites: None (not exactly true, but the changes made to non-existant copies of place_monster_aux() can be ignored. Any extras should just have an extra "FALSE" argument added.) -- One thing I had noticed about the birth sequence is that the AC for warrior-monks suddenly jumps when I "accept" a character I've created using points. This is because the character is calculated as wielding a whip during creation, but not afterwards. The whip suppresses the mystical AC they get when the game starts. --- The pre-requisites list those patches which are required to use the patch in question in the form archive/filename. Any comments should be sent to Kieron Dunbar at kieron@dimetrodon.demon.co.uk.