These are various patches designed for Cthangband 4.1.0b. Many of them require files which don't exist within this archive. The files for these are available at http://www.dimetrodon.demon.co.uk/roguelike.html --- Bug fixes --- randpower3.diff fixes a bug which told the player that unidentified cursed things were cursed when the player couldn't know this. Pre-requisites: None (although it does nothing without randpower2.diff) deathevent3.diff removes a bogus "const" term from find_string(). Pre-requisites: diff0811.zip/objknow.diff diff0811.zip/worthless.diff diff0412.zip/curse.diff diff1212.zip/curse.diff stormy.zip/stormy.diff diff1212.zip/bypass.diff diff1212.zip/autohaggle.diff dif1212.zip/dropspecial.diff diff1212.zip/saves.diff diff1512.zip/pseudoid.diff diff1512.zip/allart.diff diff1512.zip/moncol.diff diff1701.zip/artpower.diff diff1701.zip/spoiler.diff diff0903.zip/deathevent.diff diff0903.zip/plurals.diff diff0903/deatheventtext.diff diff0903.zip/wizmonster.diff diff2105.zip/curse2.diff diff2105.zip/deathevent2.diff --- Enabling --- These are included in other patches somewhere, but it's easier to apply them separately than apply the patches needed to achieve them by applying them. hack414.diff changes the version number from 4.1.1 to 4.1.4. This doesn't produce correct save files, but it enables the above the work correctly. Pre-requisites: diff0412.zip/curse.diff diff1212.zip/curse.diff diff1212.zip/saves.diff diff2105.zip/curse2.diff makefake.diff defines make_fake_artifact as external. Pre-requisites: None onamemax.diff simply defines ONAME_MAX and MNAME_MAX, required for various other patches but not actually useful in itself. Pre-requisites: None --- Window stuff --- windowpri.diff causes each of the window prefs to take a value between 0 and 9. If display A has a higher priority than display B for a window, display A is shown unless it is "boring" (only possible for a few window types), in which case display B is shown. If all displays are boring, the lowest priority one is shown, but you probably don't care either way. If two screens have the same priority, the most recently updated non-"boring" one is shown. The "flip inven/equip" command has been generalised to rotate any display for which there are more than one Pre-requisites: diff0412.zip/curse.diff diff1212.zip/curse.diff diff1212.zip/saves.diff diff2105.zip/curse2.diff hack414.diff monlist.diff adds a window display for the list of visible monsters. Taken from Eyangband. Pre-requisites: diff0412.zip/curse.diff diff1212.zip/curse.diff diff1212.zip/saves.diff diff0903.zip/plurals.diff diff2105.zip/curse2.diff diff2105.zip/dundepths.diff hack414.diff windowpri.diff skillwin.diff adds a display type which contains the player's current skills. Pre-requisites: diff2510.zip/skill.diff diff0412.zip/curse.diff diff1212.zip/curse.diff diff1212.zip/saves.diff diff0903.zip/plurals.diff diff2105.zip/curse2.diff diff2105.zip/dundepths.diff hack414.diff windowpri.diff monlist.diff objident.diff adds a window display for objects, which displays the information gained by 'I'. It notices an object when you pick it up, drop it or move the cursor over it in target mode. Pre-requisites: diff2510.zip/skill.diff diff0811.zip/objknow.diff diff0811.zip/worthless.diff diff0412.zip/curse.diff stormy.zip/stormy.diff diff1212.zip/bypass.diff diff1212.zip/curse.diff diff1212.zip/autohaggle.diff diff1212.zip/saves.diff diff1512.zip/pseudoid.diff diff1512.zip/allart.diff diff1701.zip/artpower.diff diff1701.zip/autohaggle2.diff diff1701.zip/quicksplit.diff diff1701.zip/spoiler.diff diff0903.zip/autohaggle3.diff diff0903.zip/randpower.diff diff0903.zip/fullident.diff diff0903.zip/spoilstat.diff diff0903.zip/servicehelp.diff diff0903.zip/plurals.diff diff2105.zip/curse2.diff diff2105.zip/dundepths.diff diff2105.zip/spoilstat2.diff diff0106.zip/identify.diff diff0106.zip/spoilstat3.diff hack414.diff windowpri.diff monlist.diff skillwin.diff --- text file related --- tval.diff defines a new directive in k_info.txt which allows the user to specify flags which are present in every subsequent item with a particular tval. It also removes the unnecessary easy_know field from object_kind and the routines which acted as a hard-coded version of this. ?Pre-requisites: diff2105.zip/knowempty.diff ignoreall3.diff incorporates tval.diff into it (i.e. it doesn't use the hates_foo() procedures) and makes the messages it gives more accurate. Pre-requisites: diff1701.zip/ignoreall.diff diff2105.zip/knowempty.diff diff0606.zip/ignoreall2.diff tval.diff moncol3.diff adds a separate "name" field to the visual preferences and makes the definition. This means that the names given for objects are real names rather than just (e.g.) Confusion. Pre-requisites: stormy.zip/stormy.diff diff1212.zip/dropspecial.diff diff1512.zip/moncol.diff diff0903.zip/phial.diff diff0903.zip/deathevent.diff diff0903.zip/features.diff diff2105.zip/moncol2.diff diff0606.zip/randpower-x.diff charisma.diff diff0606.zip/unident.diff -diff0606.zip/randpower-x.diff* baseval.diff causes object_value_base() to give the lowest k_ptr->cost a given unidentified object may have if it doesn't have one of the specified tvals rather than returning 0. This isn't particularly satisfactory as it's a fairly arbitrary choice, and the original part of the routine contains no references to what the player may or may not know at all. It is an improvement, however. Pre-requisites: stormy.zip/stormy.diff diff1212.zip/dropspecial.diff diff1512.zip/moncol.diff diff0903.zip/phial.diff diff0903.zip/deathevent.diff diff0903.zip/features.diff diff2105.zip/moncol2.diff diff0606.zip/randpower-x.diff charisma.diff diff0606.zip/unident.diff -diff0606.zip/randpower-x.diff* unident2.diff is an update of diff0106.zip/unident.diff. It replaces hard-coded p_id values with flags, allows arbitrary numbers of descriptions which use the scroll name generator to be created with names in an arbitrary form, replaces the p_id and s_id fields in k_info with a single u_idx one, allows several similar base entries to be generated easily and makes the object name format significantly more flexible. Pre-requisites: stormy.zip/stormy.diff diff1212.zip/dropspecial.diff diff1512.zip/moncol.diff diff0903.zip/phial.diff diff0903.zip/deathevent.diff diff0903.zip/features.diff diff2105.zip/moncol2.diff diff0606.zip/randpower-x.diff charisma.diff diff0606.zip/unident.diff -diff0606.zip/randpower-x.diff* artrand3.diff onamemax.diff wizobjnam.diff moncol3.diff artrand3.diff uses object_desc() to generate the name given to cheaters when the game tries to generate an artefact. Pre-requisites: stormy.zip/stormy.diff, diff0903.zip/artrand.diff, diff2105.zip/artrand2.diff and onamemax.diff makefake.diff wizobjnam.diff causes the game to use object_desc() to give the name of an object (removing common words to fit) and displays the choices in two equally spaced columns if only two are needed. Pre-requisites: onamemax.diff spoilbase2.diff indicates to the user which flags an object must have because of its p_id if spoil_base is set. ?Pre-requisites: diff0811.zip/objknow.diff diff0811.zip/worthless.diff diff0412.zip/curse.diff stormy.zip/stormy.diff diff1212.zip/curse2.diff diff1212.zip/dropspecial.diff diff1212.zip/autohaggle.diff diff1212.zip/saves.diff diff1512.zip/pseudoid.diff diff1512.zip/allart.diff diff1512.zip/moncol.diff diff1701.zip/spoiler.diff diff0903.zip/features.diff diff2105.zip/moncol2.diff diff2105.zip/curse2.diff diff0606.zip/randpower-x.diff charisma.diff diff0606.zip/unident.diff -diff0606.zip/randpower-x.diff* artrand3.diff onamemax.diff wizobjnam.diff moncol3.diff * That is to say, patch it with the -R flag. --- Miscellaneous --- charisma.diff just increases the price of charisma potions to 8000. It's only included because I didn't realise that it was applied when I created unident.diff. Pre-requisites: none pickgood.diff allows get_item() to select the most valuable pile of items in your inventory if spoil_value is set if you want to maximise your yield in shops. ?Pre-requisites: diff0811.zip/objknow.diff diff0811.zip/worthless.diff diff0412.zip/curse.diff diff1212.zip/curse2.diff diff1212.zip/autohaggle.diff diff1212.zip/saves.diff diff1512.zip/pseudoid.diff diff1512.zip/allart.diff diff1701.zip/spoiler.diff diff1701.zip/pseudoid2.diff diff1701.zip/spoilvalue.diff diff0903.zip/spoilvalue2.diff diff2105.zip/curse2.diff endlevel.diff gives a special message when you reach the last level of a dungeon/tower. Pre-requisites: None wizobjarg.diff allows the "create item" type to take a numerical argument which is used to generate the item with that k_idx if there is one. Pre-requisites: None --- --- --- Any comments on any of the above can be sent to me, Kieron Dunbar, at kieron@dimetrodon.demon.co.uk.