Angband -- Changes

This page lists "changes" in recent versions of Angband.

Table of Contents


Changes made for Angband 2.8.3

  • A new archive was uploaded that fixes the problems contained in the first (useless) upload, which is not (hopefully) available anywhere. You have the new archive if the very last option on the first page of options mentions "Audible bell".
  • The "depth_in_feet" option has been restored due to popular demand. The "show_flavors" option has instead replaced the "inventory_colors" option, which (like the old "hilight_seams" option) can be simulated by clever use of a user pref file (use attr 0x01 for all "E" entries). The "show_flavors" option is grouped with the other "show_xxx" options. The "lib/help/options.txt" help file was updated.
  • Two occurances of "benh@voicenet.com" were changed to "benh@phial.com".
  • Becoming aware of an object via purchasing the object in a store now induces pack reordering, as does quaffing potions of self knowledge.
  • The map scrolling the occurs when the player gets too close to the edge of the map has been delayed until after the move is complete, preventing the annoying situation in which the player is redrawn, some messages are displayed, and then the map is redrawn.
  • The "-s" command line argument now works when no high scores exist.
  • Bad assumptions about the return value of "isupper" have been fixed.
  • Accept (but convert to underscore) all non-alphanumeric characters when building the player "basename" from the player "fullname". This affects the names used for new savefiles on some systems, and the names used for player-specific user pref files on all systems.
  • The character description screen now shows the correct Shots/turn, and no longer displays the maximized stat indicator in the wrong column.
  • The "window option flags" that control the "display_player()" dumps were renamed to reflect their actual purpose.
  • User pref file expressions now treat all printable characters except space and brackets as "token" characters, allowing correct processing of hyphenated race names.
  • Previously, when using "main-win.c", "main-mac.c", or "main-ami.c", the "SAVEFILE_MUTABLE" flag told the game to pick a new name for the savefile whenever the player name changed. This flag has been removed, and now, on those platforms, the game will only pick a new name for the savefile when a brand new character has just been created and the savefile has no name yet. This means that, on these machines, changing your name will no longer change the name of your savefile!
  • A brand new "main-emx.c" file was obtained, along with "Makefile.emx" and "pref-emx.prf", which not only allows the use of standard macros ala "main-ibm.prf", but which supports the full set of eight windows.
  • Some minor random cleanups were done.
  • At this point, the "defective" archive was uploaded, but was only available for two days. It contained all the bugs mentioned above.
  • The "lib/file/news.txt" file was redesigned. Various of the online help files were updated slightly. Much commenting was performed.
  • The old "depth_in_feet" option has been removed, and in its place, a new "show_flavors" option has been added, to allow object flavors to be shown even on "aware" objects (except in stores).
  • The "misc_to_attr"/"misc_to_char" arrays have been activated, and are being used for both "spell effects" and "object flavors", which will allow "lib/user/font.prf" and/or "lib/user/graf.prf" to specify better attr/char codes when they are available. It is no longer possible to force a flavored objects to change its "appearance" when identified.
  • The inventory, equipment, and browsing commands now display a special prompt of the form "(xxx) Command: ", where "xxx" indicates what type of special display mode is active, and then they prompt for a command. The "total weight" is no longer displayed in the prompts.
  • The character display screens have been cleaned up and consolidated into two screens. Both display the player name, sex, race, class, title, hitpoints, mana, and complete stat info. The "standard" one also displays age, height, weight, status, maximize, preserve, level, experience, gold, burden, bonuses, infravision, skills, and history. The "special" one also displays player level and various flags which are known to be induced by equipment (or inate abilities).
  • The "NOT" expression in user pref files has been fixed.
  • The "interact with macros (and keymaps)" screen now uses a more user friendly method for macro/keymap creation.
  • Command macros have been replaced by keymaps (or normal macros). Macros are now really intended to be used only as a simulation of real hardware based macros, with the ability to manage them at a software level.
  • Keymaps may now specify a command count, so, for example, you can now make a keymap from "s" to "05s" to induce semi-repeated searching, but then you would have to use "d" or "\s" or "01s" to sell single items. Pre-supplying an explicit command count will allow the keymap to be used without its numeric count, so, for example, typing "01s" in the example above would search for one turn.
  • Keymaps have been changed. For each "mode" (original and roguelike), each "keypress" can be mapped to any sequence of keys, as with macros. This sequence of keys will not be matched against macros or keymaps, and so every "command key" in the sequence must be an "underlying" one. The "interact with macros" command now allows dumping of all keymaps for the current mode to a file, and for interactive modification of keymaps. Keymaps can appear in user pref files. The default mappings for both keysets are listed in the main "pref.prf" file. Commands which take a direction now extract the legal directions from the bodies of keymaps for the current mode. Note that a keymap may specify a sequence of several actions, and if the "flush_failure" option is set, then any failures will cancel any pending actions.
  • Nar the Dwarf now has the "ONLY_ITEM" flag.
  • Objects from the second page of a store are now always have indexes from "m" to "x", and you may get/purchase objects from either "page" of the display. The "m" and "p" and "s" store commands will be, at some point in the future, removed. Start using "g" and "d" instead.
  • A new "main-dos.c" file has been created to leverage the "Allegro" graphics library for DOS-386 machine. It can now be compiled with the standard "main-ibm.c" file as a backup method. Both files have been cleaned up somewhat. The "main-ibm.c" file now sets the cursor visibility correctly, and cleans up the video mode on exit.
  • The "Term_save()" and "Term_load()" calls have been wrapped in new "screen_save()" and "screen_load()" functions, with a static variable to make sure they are never called incorrectly. The "character_icky" and "character_xtra" flags have been converted into counters.
  • The "main-win.c" file now recognizes "keypad 5" (and various other special keys, such as "pause").
  • The "main-win.c" and "main-mac.c" files no longer allow the game to be saved when it is in an inconsistant state.
  • The "bell()" function now takes a string to add to the message recall, and it may be extended at some point to use the "plog" method to show error messages to the user, but this would require special code for some of the "main-xxx.c" files.
  • It is now officially illegal to "resize" the primary Angband window (this is enforced by the "z-term.c" package), which must be at least 24x80 in size. This change has made a lot of code faster and safer.
  • The "target" code was wrapped lightly in an interface. The "macro" and "quark" and "message" packages were wrapped lightly as well.
  • The "dispel" prayers now do the "correct" amount of damage, that is, for some number D between 1 and N, where N is some multiple of the player level, all appropriate monsters take D damage.
  • The "main-xaw.c" file now saves all keypress events in "old_td", which should fix some old bugs.
  • The "update_flow()" function was optimized.
  • The "Borg" and "Debug" commands now always prompt for acceptance of the first usage per session, with plenty of warnings, unless a new option is set.
  • Multi-page self knowledge displays have been fixed.
  • A source only beta release of Angband 2.8.2 with the changes below has been released for testing purposes only.
  • Minor cleanups (comments, indentation, and such).
  • Most global array variables are now dynamically allocated.
  • Allow "special" artifacts to be created in any order.
  • Only the "cave_set_feat()" function may change features.
  • Cleaned up "generate.c" with some higher level functions.
  • Optimized "message_add()" and "object_desc()" functions.
  • Major optimizations of various "cave.c" functions.
  • New "project_path()" function (using actual range).
  • New "update_view()" code (absorbed "update_lite()").
  • The entrances to shops are now more widely illuminated.
  • Compilation option for "new field of view algorithm".
  • Compilation option for "complex wall illumination".
  • Option "hidden_player" to hide player when running.
  • Option "verify_destroy" to verify object destruction.
  • Option "verify_special" to verify unsupported commands.
  • Option "allow_quantity" to allow quantity specification.
  • There is a new "project_path()" function for calculating projection paths. Range is now correctly applied to diagonal projections. All "ball" attacks now auto-explode if they reach maximum range.
  • The "update_view()" function was optimized, and absorbed the "update_lite()" function. The "display torch lit grids in yellow" option now affects only grids which are not perma-lit. There is a new version of the "update_view()" algorithm which is much better.
  • A new bitmap file has been uploaded for Windows Angband, and the precompiled archive has been recreated using the new file.
  • New "ext-mac" and "ext-win" archives have been uploaded.

  • Go back to the Official Angband Home Page

    See also Ben Harrison's Home Page / Ben Harrison / benh@phial.com