Change Log for ZAngbandTk
It is intended that this file document all the changes from one version
of ZAngbandTk to the next, in reverse-chronological order (most recent
versions first).
New Features
-
Icon lighting no longer requires 3 copies of each icon in a GIF file.
Instead, 2 darkened copies of an icon are created only when needed. The Tcl
command "icon dark $type $index $gamma1 $gamma2" is used.
-
An isometric view was added using David E. Gervais' isometric tiles
and the existing 32x32 icons. So awesome.
-
The Assign Window shows fewer cave features now. This is because some
cave features mimic another. For example, all closed/locked/jammed doors
share the same icon, so only one needs to be assigned.
-
The various sub-windows can now be closed. When the Message Window is closed,
it is integrated into the top of the Main Window. When the Misc Window is
closed, it is integrated into the left of the Main Window; in this case
the Progress Window is closed automatically.
-
The Misc Window can be configured as "tall" or "wide" using a context menu.
When the Misc Window is tall, the Progress Window is automatically hidden
and HP/SP/FD is displayed in the tall Misc Window.
-
A row of equipment letters ("equippy chars") is displayed when the Misc
Window is "tall". Pointing to a letter shows the item memory in the Recall
Window. When the game is waiting for a command, the user can click one of
the equippy chars to activate an artifact (if it is not charging).
-
Cave features now support different "shapes", such as corners, north-south walls,
and west-east walls. See the isometric view for examples (note that this will
work in the non-isometric view as well).
-
The vault editor and the game now support up to 4 layers of icons for cave
features. The was done to support David E. Gervais' awesome edged tileset.
The vault editor also has a menu of plugins to make drawing edged tiles
a breeze.
-
The ambient_delay sound option was used to specify the number of game turns between
ambient sounds being played. Now ambient_delay specifies the number of
seconds between ambient sounds. So ambient sounds might play even when
no game turns are passing.
-
The monster_delay sound option now specifies seconds, not game turns.
-
Transparent icons now use a new storage method that eliminates the .msk data
files. Previously, a mask was created for each transparent icon, consuming
twice as much memory and disk space.
-
The graphics performance should be improved over previous versions. The
transparent status messages are no longer transparent. This speeds things
up and also creates consistency across platforms (transparency only worked
on MS-Windows and 8-bit Unix displays).
-
The cave-displaying windows (icon and map) now fill the area instead of
clipping to whole grids only. This means that partial grids may be displayed.
-
The Message Window and the Main-Window statusbar have context menus
for configuring their appearance (setting the font etc).
-
Multiple sound directories are supported.
-
Multiple sound configurations are supported. A sound configuration consists of
a descriptive title, a list of directories, and a set of sound assignments.
Individual sound configurations may be turned on or off to enable/disable
whole sets of sound assignments.
-
The main program accepts command-line arguments. The -variant option is used to
specify which variant to play (AngbandTk, KAngbandTk etc). The -savefile option
is used to specify the savefile to use (full pathname). Other options are
-icon-prefix, -music, -music-lib, -setup, -sound, and -sound-lib.
-
On MS Windows, a BAT file is created which will run angband.exe with the most
recent variant and savefile. On Unix a shell script is created for the same
purpose.
-
A history of recently-played sound events is available in the Sound Window. So
if the user wonders why a sound was played, he can look it up in the history.
-
Implemented the 'L'ocate command.
-
When an inventory item is inscribed with '=g', any similar item on the floor
will be picked up regardless of the always_pickup option. Previously, the
item being walked on required the '=g' inscription for autopickup.
-
The new "pickup_similar" option causes any item walked on to be picked up,
if it can stack with an inventory item. This works without any special
inscription.
Bug Fixes
-
Fixed the "can't read "left": no such variable" error in the graphical
Inventory Window. It usually happened when using the context menu.
-
"Repeat Last Command" now requires the same object kind when repeating an
object choice. So if the character throws a flask of oil, then repeats,
but there are no more flasks of oil, then the user is again asked for an
item to throw, instead of automatically selecting the next available item.
Code Changes
-
Moved the really low-level nasty platform-specific code into plat-dll.c and
plat.c where possible.
-
Fixed a very old bug with <Setting> events. Changing many game options
would not generate a <Setting> event.
New Features
-
UpgradeTool is now integrated with AngbandTk. If the game is started, and
tk\config\value does not exist, the user is asked if she wants to run
UpgradeTool.
-
Added an option to the Window Menu in the Main Window to automatically
save the window positions when the game exits.
-
Can click the character's name to change it in the Misc Window.
-
Clicking the icon in the Recall Window selects the monster or object
in the Knowledge Window. Control-click displays the Assign Window.
-
Control-click the character icon in the Misc Window to display the
Assign Window
-
Created a GUI installer which downloads and unzips all the required files.
Bug Fixes
-
Fixed another bug with the graphical Store Window. The
"character isn't shopping" error could occur when leaving a store/home.
-
Non-random artifact lights did not display the "Permanent Light" flag in
the Flags page of the Character Info Window.
-
Fixed problem where resting could not be interrupted.
-
Fixed a bug in the Assign Window when any sound file had spaces in the name.
-
Fixed bug with the X11 version when the screen depth was not the same as
the framebuffer depth. Usually this meant 24-bit color with a 32-bit video
buffer.
-
Fixed bug with placement of the Choice Window when using the "Arrange Windows"
menu command. The window was placed offscreen.
-
Fixed bug with size of the Main Window when using the "Maximize Windows" menu
command.
-
The "Arrange Windows" command now considers the Choice Window when setting
the size of the Recall Window.
-
Modified the Misc Window, Progress Window and Character(Info) Window
to handle internationalization issues (language, font) better.
-
Fixed bugs with how certain skills were displayed.
-
Fixed some potential problems with long item descriptions.
-
Added the "angband system osversion" command to determine the Windows version.
This command should detect 95/98/ME/NT/2000. Tcl only detects 95/NT.
-
Stopped the animation timer going off during startup before icons/widgets
are even initialized.
Code Changes
-
Renamed all "jp.msg" files to "ja.msg" because "ja" is the correct name.
The locale in each file was changed from "jp" to "ja".
-
Added msgcat support to UpgradeTool.
-
Replaced all C++-style comments with C-style.
New Features
-
Items which can be sold are displayed with a different border color in the
(graphical) Store Window.
-
The Misc Window buttons now automatically pop up a list of item choices
when the mouse is over one of the buttons. Previously the user had to
click one of the buttons to pop up a menu.
-
Added the "autobar" to the Main Window. When the user points the cursor
at the Main Window statusbar, a toolbar pops up with a number of buttons.
The buttons are mostly the same as the Misc Window, with the addition
of a button for each spell book.
-
A "Level N" message appears in the Main Window when the character's
experience level changes.
-
Added the "Home" page to the Knowledge Window so the contents of the Home(s)
can be browsed at any time.
-
The status messages at the top of the Main Window are now assigned one of
three flavors: Good (ie Blessed, Faster), Info (ie Full, Resting), or
Bad (Confused, Stunned). Each flavor is displayed in a different color
scheme. The colors can be changed in the Color Window.
Bug Fixes
-
Update the Choice Window when the show_flavors option changes.
-
The micro-map "detail" is saved and restored.
-
Fixed bug with the Book Window when there are no books to browse.
-
Fixed the way styles are added to fonts, to fix a problem when the system font
had a complex style such as "bold italic". Errors would occur when trying to
pop up a context menu, since the first item often had "bold" style added.
-
Fixed the "bad store item" and "bad inventory item" errors in the
graphical Store Window, which stopped the balloons showing.
-
Fixed the 'bad option "drag"' error in the graphical Store Window.
Code Changes
-
In the graphical inventory and store windows: made the colors of the
drag-box match those of the dragged item.
-
Changed tnb.h so it doesn't include tk.h or windows.h. This decreases the time
it takes to build the game, and decreases the amount of debugging info the
compiler generates.
-
Used canvas items to display the item description in the graphical Inventory
and Store windows. Some people reported that the balloon window would randomly
stop displaying in the Store Window. The upside is that there is less messy
drawing because a separate window isn't used. The downside is that the balloon
isn't allowed to extend past the window boundaries.
-
Added a HandleError() C function to dump an error message to errors.txt,
just like the Tcl command HandleError does.
Code Changes
-
Begin using TclTk-8.3.2 directory to avoid installer and AUTOEXEC.BAT
issues.
New Features
-
Various features, code changes and bug fixes somebody forgot to write down.
Code Changes
-
All of the common files are now in a separate directory, and are shared
by each variant. The directory is CommonTk-x.y, where x.y is the version
number which is incremented for each release.
-
The main program is now inside angband.dll. The angband.exe application
is just a stub which sets the PATH to the CommonTk/lib directory, loads
some DLLs, and then calls Main() inside angband.dll.
-
Ported AngbandTk etc to run on Unix. It has been tried on Linux and Solaris.
New Features
-
The < and > keys can be used to navigate the Birth Window.
-
The new Book Window displays all the available books in a single window. The
"Browse (b)" command no longer asks for which book to browse.
-
Arrows and bolts use a different set of icons when being fired from a missile
weapon. The Assign Window is used to choose the icons.
-
The Font Window allows the user to change the font used in the Main Window,
Store Window, and Inventory Window status bars.
-
The Inventory Window can be kept on top of the Main Window by choosing the
"Always On Top" option from the options popup in the toolbar.
-
The Inventory Window supports drag-and-drop. Drag an item from the inventory
to equipment to wield it (if possible). Drag an item from equipment to inventory
to remove it (if possible). Drag an item to the bottom of the window to drop
it onto the floor.
-
The Main Window view can be scrolled when the game is asking the user to target
a monster or location by clicking and dragging.
-
When the game is asking the user to target a monster or location, left-clicking
selects the monster or location under the cursor. Left-clicking in the Micro
Map window also does this.
-
When the game is asking the user to enter a direction, right-clicking on a
location will target the monster or location under the cursor.
-
Double-clicking the Messages Window displays the message history (Ctrl-P).
-
The Options Window has a list of option groups instead of the familiar tabs.
Related options are now grouped more logically.
-
The Store Window supports drag-and-drop. Drag an item from the inventory to
the store to sell it (if possible). Drag an item from the store to the inventory
to buy it (if possible).
-
Missile weapon hits give the save visual feedback as melee attacks.
Bug Fixes
-
The about box displays the operating system as "Windows 95/98" (unless it is NT)
because the actual OS version cannot be determined.
Code Changes
-
Updated msgcat (internationalization) support in various modules. The
tk\msgs\common directory contains translations shared by multiple modules.
A module can include more than one message file, and automatically includes
the tk\msgs\common translations.
-
The game was updated to use Tcl & Tk 8.3.1.
-
The transparent status messages are handled by the the msgcat package.
-
The missile/melee "hit feedback" was tweaked to invert the unmasked area outside
the hit monster, unless that area is very small.
New Features
-
Used Ben Harrison's changes to the "easy" options. The easy_disarm option was
renamed easy_alter and now controls whether moving into a closed door or
a floor trap should attempt to open/disarm it. The easy_open option now
only chooses a direction when closing/disarming/opening. Previously the
easy_open option controlled whether a door was opened/unlocked when moving
into it.
-
New graphical combined Inventory/Equipment window. The Inventory Window
can be now left open all the time.
-
New graphical combined Store/Inventory window.
-
The Micro Map Window now uses graphical tiles. Water, lava, trees, grass and
dirt etc are all easily distinguished. The 5x5 and 7x7 resolutions were
removed, leaving 4x4, 6x6 and 8x8.
-
The new Setup Window is a tabbed window that allows the user to choose the
icon set; whether music is on or off; whether sound is on or off; which
sound.dll to use. This means renaming the various sound.dll files by the user
is no longer required each time the game is installed. The Setup Window is
displayed by clicking the Setup button when the game starts.
-
The Rogue-like keyset can be selected from within the Keymap Window.
-
Them mouse-tracker automatically shuts off if the characters hit points
suddenly drop by 15 percent or greater. This is to stop annoying insta-death
just when you thought everything was going fine.
-
The music player can now randomly select songs to play from all the songs
in the music directory. Each song is played only once until all the songs
have played.
-
The target-set image in the lower-right corner of the Main Window now displays
the ascii character of the targetted monster, or no character if a location
is targetted. Also, the target-set image fades out when the targetted location
is not in line-of-sight (it already did this for the targetted monster). The
colors/transparency of the target-set image can be edited in the Color Window.
-
If the sound or music is not available or was disabled by the user at
startup, then various menu commands relating to sound and music are not
displayed (ex. the Sound Window).
-
AngbandTk now supports 24x24 icons. Two 24x24 icon sets are provided, one using
Adam Bolt's graphics, and one using ascii graphics.
-
The game windows now display the application icon in the titlebar/Taskbar
instead of the Tk icon.
-
The Misc Window now displays graphical labels in addition to text labels.
The user can configure the appearance with a popup menu (right-click to
access the menu).
-
The Music Window now displays a progress bar displaying the position of the
current song.
-
Savefile names are no longer truncated to 8 characters.
Code Changes
-
Created macros for some of the z-term.c routines so they have no effect.
Some output routines in utils.c were also converted to macros. This seems
to have improved the speed.
-
Put braces around single arguments to the "proc" command. New "Window"
command replaces direct access to the "Windows" global variable. Lots of
string comparisons replaced with the "string equal" command.
-
The msgcat package is used to make internationalization much easier. Much of
the user interface can be customized for different languages simply by
editing message files in the tk\msgs directory.
-
The "icon assign" command was replaced with the "assign set" command. There
is no more overloading of icon types, ie, "alternate", "flavor" and "sprite"
are no longer icon types.
-
The "angband a_info/f_info/k_info/r_info" commands were all reimplemented
using the Struct_foo API. This means that searching and querying the
various game arrays (to which the commands refer) is done in a uniform
manner without duplicating lots of code. As a result the "a_info info"
subcommand no longer returns an array, it returns a list of field/value
pairs (or a single value if a field name is given).
-
The new "symbol" command replaces the old "angband mapcolor" command. Map
symbols can now be assigned any arbitrary image, instead of the boring
2-color squares.
-
The format of various tk\config files was changed. Each file now has its own
namespace (ex. Config::Sound) which cuts down on file size.
New Features
-
The book menus now display book/spell information in the Recall Window
when a menu entry is highlighted.
-
The Choose Game Window now caches information about each savefile so
savefiles do not need to be scanned each time the window is displayed.
This improves the display time significantly.
-
ZAngbandTk now uses the nice-looking town layout when the vanilla_town option
is set. This town layout was already used by AngbandTk and OAngbandTk.
-
The Help Window was redesigned to resemble the Windows 98 html-based
help system, with iconic buttons and a separate contents list. The "Angband
Variant FAQ" and "Angband Newbie Guide" are included. The ReadMe files are
viewable within the Help Window now.
-
If the ZAngband Knowlege Base is installed in the ZAngbandTk\ZKB directory,
it will be viewable in the Help Window. It is not as nice or featureful as
viewing with a proper browser, but is workable.
-
AngbandTk now supports music! The MIDAS Digital Audio System is used to play
various "mod" formats (Protracker, FastTracker 2, Scream Tracker 3, and
Impulse Tracker). See the ReadMe_Music.txt file for more information about
this. The user chooses a directory containing music modules using the
"Set Directory..." command in the new Music Window. When a song has finished
playing, the next song begins; when the last song in the directory is finished,
the first song begins playing. No music modules are included with AngbandTk,
but there are plenty available on the Internet.
-
The Character Info Window and Character Flags Window were merged into a
single tabbed Character Window. Various character-related commands are now
available via menu commands, including changing the character's name,
creating a character dump, and changing the character's icon. The old
behaviour of clicking the character image in the Misc Window to display
the Character Window was restored (recent versions used a popup menu to
access various commands such as changing the character's icon).
-
The Mutations page was moved from the Knowledge Window into the new
Character Window.
-
The new Choice Window displays all the choices which used to be displayed
in the Recall Window. When the game is not asking the user to make a choice,
the character's inventory or equipment is displayed (type / to toggle).
See the Interface -> "Game Windows" section in the Help Window for tips on
getting the most out of this new window.
-
The new Messages Window now displays the most recent messages. Resizing the
window changes the number of messages which are displayed. See the Interface
section in the help for more info on this.
-
When a new character is created and saved, that savefile becomes the new
default savefile when the Choose Game Window is displayed.
-
The "options" toolbar button in the Inventory Window now has a menu
to directly change those options which affect the display of the inventory
or equipment, such as show_icons, show_weights, etc. The Store Window has
a similar menu of options.
-
The Main Window has a new Window Menu containing the various window-related
commands. "Arrange Windows" and "Maximize Windows" now ask before changing
the window positions.
-
The "Repeat (n)" command was added to the Actions Menu.
-
The "Quest Status (^Q)" command now displays the Quest page in the Knowledge
Window instead of printing a message telling the user to look there.
-
The icon in the Recall Window can be hiddent/shown via a popup menu.
-
The file displayed in the Character Record Window can be saved to a file.
Note: the Character Record Window can be displayed via the High Scores
Window.
Bug Fixes
-
A Windows NT user suggested I set the default savefile name to *.*
when browsing for savefiles. Apparently the file list is empty otherwise.
-
If the user saved the window positions, restarted the game, and then saved
the window positions again, the desired geometry for any windows which had
not yet been displayed would be lost.
-
If the Micro Map Window was moved to the left of the Main Window, some
windows would not be displayed properly (an "invalid geometry specifier"
error would occur). These windows are now aligned to the top edge of the
Main Window and left edge of the monitor, regardless of the position of
the Micro Map Window.
-
The Message Window (the message line/prompt) had some unnecessary padding
inside it which was removed (this will screw up people's custom window
positions).
Code Changes
-
AngbandTk now uses Tcl 8.2.1.
-
The "about" dialog now tries to detect Windows 98 by looking for the
Windows\System32 or Windows\Tasks directories. Tcl only reports whether
Win95 or WinNT is running.
-
Added the "statusbar.tcl" library script. This is an example of a Tk
"mega-widget" I suppose. These statusbars support the Windows behaviour
when displaying menu tips.
-
The NSMenu code was cleaned up to accept a variable number of arguments
when creating menus and menu entries, instead of a big list.
-
The NSBookWindow and NSInventory scripts now use NSModule support for
delayed loading (they aren't loaded at startup, only when they are needed).
-
The Options Window and Birth Options Window now display the help text for
selected options much faster. The code uses "seek" instead of reading lines
until the desired text is reached.
-
Added the win98ToolbarButton.tcl and win98Toolbar.tcl library files to
support nifty Windows98-like toolbars.
-
A bunch of code was moved into a separate DLL, icon.dll, which resulted in
a cleaner interface between different modules. The DLL holds the dynamic
array code (Array_foo), doubly-linked list code (DoubleLink_foo), the "icon"
command, the quasi-event code (QE_foo), the 8-bit bitmap code (Bitmap_foo),
a nice new palette API (Palette_foo), a new "struct" command and API
(Struct_foo), the "widget" command, and a couple Tcl/Tk related routines.
-
The "qeinstall" command was added to allow scripts to define new details
for already-defined quasi-events. This allows us to bind to the <Setting>
quasi-event for various Tcl-only game settings.
New Features
-
UpgradeTool can now be run even if the new version was played. Any existing
files will be backed up with a 4-digit suffix. For example "config" will
be renamed "config0000" before the old version is copied to the new game.
-
The character's life rating is displayed in the Character Info Window
when creating a new character.
-
Special .vlt data files are included which allow customization of the
appearance of town levels in AngbandTk. Each vault file specifies foreground
and background icons to be used in preference to the default icons chosen
by the game. For AngbandTk and OAngbandTk, the town.vlt file is used instead
of the town.txt file. In KAngbandTk and ZAngbandTk a separate .vlt file
is included for each town. David E. Gervais put a lot of work into the .vlt
files for KAngbandTk so they look very good. The .vlt files for ZAngbandTk
allow the custom building door icons to be used.
-
Clicking the monster or object icon in the Recall Window will display the
Assign Window with the monster or object already highlighted.
Bug Fixes
-
The Choose Game Window "Name" column was too wide. I had made it 120 pixels
wide if there were no savefiles, but forgot to shrink it down when there
were savefiles.
-
Removed the extra trailing space returned by the "angband cave examine" command
when looking at a monster (with no attitude). This showed up in the photo.txt
files created by NSPhoto.
-
When deleting Widget items/extensions, memory was accessed after it was
already released.
-
Put a big bold warning message into UpgradeTool if it is running in testing
mode. The previous release had DRY_RUN set so nothing would happen when it
was run. One person reported this only. One!
-
The awful "gzclose() failed" bug was worked around. It seems that for some
people there was an error when expanding adam32.msk at startup; just that
file, and only on some systems. Even though the entire file is read in,
gzclose() reports an error, so I just ignore that error.
-
Changed the "You're character will be not saved!" message to "not be saved",
and the title of the accompanying MessageBox() to "Quit Without Saving" from
"Warning".
-
The chaos patron was not being saved for the previous roll during character
creation.
Code Changes
-
Text-class Widget items now have "-expandx" and "-expandy" options
which allow the bitmap to grow as needed. This means I no longer need
to calculate the maximum size for the text item in the Monster Health Bar.
-
Added some sanity-checking wrappers around Tcl_Alloc() and Tcl_Free() to
help catching illegal memory references easier to detect.
-
Created an API for using doubly-linked lists. These lists are used by
canvas Widget items, Widgets, and vaults. A list of all mapped Widgets
is kept in addition to the list of all created Widgets, which should
speed things a bit.
-
A cave-sized array of background icons was added to speed things a bit, in
particular, when a town vault is used.
-
A number of changes where made to support compilation with Tcl 8.1.1, the
most significant being the use of the Tk_OptionSpec interface and Tcl_Obj
interface by Widgets and Widget items. Other than that, upgrading to 8.1.1
was pretty smooth. All the games will probably be upgraded to use Tcl 8.2
after it comes out this month.
-
Added "find" option to the "angband f_info" command to search for features
by name. This reduced the number of hard-coded feature indexes used in a
few places.
-
Mass optimization of the micro-map side of Widgets. A global g_map_symbol[]
array is used to prevent recalculation of what to draw (except for lighting).
A Widget.centerProc() procedure is used to draw the whole map in a single
routine, avoiding alot of overhead. Overall the performance improvement is
quite noticeable.
-
The player_hp[] array is saved during character creation for the previous
roll. All the other randomly generated values were already kept in the
"struct birther" structure. This was needed so the life rating could be
displayed properly.
-
Vaults and the "vault" command were much improved. Vaults now support
foreground and background layers of icons, reading/writing from special
to assign map symbols to each cave feature.
-
Split widget.c into widget1.c and widget2.c. Most of the Widget item code is
now in widget2.c.
New Features
-
The Assign Window gives a visual indication of which monsters have sounds
assigned to them. Selecting a monster plays any sound assigned to that
monster, even if the sound list is not displayed. Clicking an already-selected
monster, sound, or sound assignment will play the sound again.
-
In the Sound Window, clicking an already-selected event, sound or sound
assignment will play the sound again. Previously, the user had to deselect
and then select a sound to hear it again.
-
Clicking the right label in the Sound Window status bar will scroll all the
lists such that the selected row in each list is in view. This is to
compensate for the sound list not scrolling by itself when a new event is
selected.
-
Many new status messages were added for temporary conditions such as
resistance to acid, electricty, fire, cold and poison; bless, hero and
berserk; infravision and see invisible.
-
Events can now have the "None" sound as an assignment. This allows an
event with multiple sounds assigned to sometimes play no sound at all
(since one of the sounds will be picked randomly).
-
The scroll position and selection are preserved in the Store Window
when the list changes (because of buying or selling).
-
Items in the Home can be destroyed with the "Destroy (K)" command. This
command is available from the Home Menu and popup menu as well.
-
Introducing character records. When the character is killed, the user
has the option of creating a character record, containing any or all of the
following: a character dump; a message log; a photo. The character
records can be viewed in the High Scores Window.
-
Message-history dumps now combine similar messages into a single line.
For example, "You hit it. (x3)".
-
Spells which can be learned are displayed in green in the Book Window.
-
The High Scores Window was revamped with a status bar, menu help strings,
and the typical selection look-and-feel. The entry for the current
character is displayed in a different color. Double-clicking a score
brings up the Character Record Window, if a record exists for that score.
-
The Other -> Photo menu command is now a cascading menu with "New" and "Open"
commands. Choosing "New" creates a photo of the Main Window as always.
Choosing "Open" will open an existing photo and display it.
-
Photos are now more informative. When the user points to a monster or object
in a photo, a message is displayed in the status bar. The message is the same
as would be given by looking at the monster or object at the time the photo
was created. If you save a photo as "photo1.gif", a second file called
"photo1.txt" is saved in the same directory; this file contains the extra
information about what is seen.
-
The "Pet (p)" command now displays a list of commands in the Recall Window,
and via a popup menu in the Main Window (right-click to access it). Typing
'*' or ' ' or '?' will display the Pet Window as always.
-
Object and monster memory is displayed in the Recall Window when looking or
targetting. Pointing with the mouse already did this.
-
Object memory is displayed in the Recall Window when walking onto a grid
containing an object (or pile of objects).
-
When an inventory item in the Misc Window popup menu is highlighted, the
object memory is displayed in the Recall Window.
-
Spell memory is displayed in the Recall Window when a spell is highlighted
in the Book Menu in the Main Window. In addition, spell memory now displays
the spell level, cost, failure percent, and any other comment.
-
The Message History Window now has a status bar and menu help strings.
-
The Choose Game Window now has column titles for Name, Version and
Description. Clicking one of the titles will sort the displayed list of
savefiles.
-
The High Scores Window has a Sort Menu will allows the scores to be sorted
by name, race, class, points and winner status.
-
Control-Shift-dragging in the Main Window will scroll the cave view.
-
Novice mages have new experimental behaviour. They won't approach closer
than 5 spaces to the character, unless the character is blind or confused or
not in line-of-sight. When closer than 5 spaces, a Novice mage will attempt
to blink away. The idea here is that mainly-spellcasting monsters should
not attempt to melee with the character. Only Novice mages are affected.
-
Object memory is displayed in the Recall Window when a menu entry is
highlighted in the Drop/Sell Menu in the Store Window.
-
In the Choose Game Window, typing a partial name will select the character
whose name begins with the typed characters. For this reason, the 'b' and
'o' keys no longer select the Browse and Open buttons.
-
The context menus in the Book, Inventory, and Store Windows display the
default command in bold. That is, whatever would happen by double-clicking
a list row is displayed in bold in the context menu, similar to the Windows
Explorer.
-
Mindcraft power information is displayed in the Recall Window when an entry is
highlighted in the Mindcraft Menu in the Main Window. The information includes
the level, cost, chance of failure, and any other comment.
-
When the easy_sense option is on, all classes get "heavy" sensing at
experience level 40.
Bug Fixes
-
Restored the desired behaviour of lists changing the appearance of the
selection when it gains or loses the input focus.
-
The Weaponmaster was not displaying the full amount of damage for each
weapon. It was missing the character's bonus to damage.
-
Fixed a problem with certain quests not being reported as completed.
-
If the character was carrying any books of the correct type which had
no learnable spells, there was an error trying to post the Book Menu.
-
Fixed two problems with double-clicking a spell to study in the Book Window.
Prayers can't be chosen, and only ZAngband says "You can learn N new spells.".
-
More hacks to prevent the Main Window growing wider if the statusbar
message is very wide. Hopefully that is the last of it!
-
Fixed a bug where the -cursor option for a Widget could not be specified.
The Tk_ConfigSpec array didn't specify the proper specFlags field for the
cursor.
-
Removed trailing whitespace from monster memory. This sometimes caused a
blank line to appear at the end of the Recall Window.
-
Fixed a bug with the "angband mindcraft info" command which would return
an invalid "comment" array value when it should have been an empty string.
-
The Mindcraft Window would not be arranged properly if the Arrange Windows
command was used.
Code Changes
-
Added the "clickCmd" property to NSCanvist. When a previously-selected
row is clicked again, the clickCmd is called. This allows us to play
a sound again when the sound is already selected.
-
Added the "icon photo" command which will set a photo image with the
pixels of any icon. This was added so a transparent icon could be
displayed in a window. (Note: A canvas Widget item also displays a
masked icon, but the background is restricted to one of the 256
palette colors).
-
Eliminated the Cxrlwin package in favor of the builtin Tcl command
"file attributes $path -longname".
-
Added the "grid" event detail to the <Track> quasi-event. When a cave
location is highlighted in some way (for example during target/look)
the event is generated with the %y and %x giving the coordinates.
-
Changed message.tcl to use the NSModule facility. Moved NSMessage::Dump()
into MessageDump() in tomb.tcl.
-
Feature? Buttons now have the usual MS Windows behaviour. When a button is
clicked, it gains the input focus and becomes the active button. When no
button has the focus the default button for the toplevel becomes active.
-
Changed the order in which Buttons are created in every toplevel so that
keyboard navigation selects them from left to right.
-
The Birth Window no longer recreates all the widgets every time a different
screen is displayed. Instead they are created once before displaying the
Birth Window.
-
Give a better error message when running makeicon.exe fails. If it is the
famous "can't duplicate input handle" error then the user is prompted to
read ReadMe_Install.txt for a possible solution.
-
Added the "-noask" switch to the "angband game abort" command, to avoid
prompting the user that the game will not be saved.
-
Split mindcraft.tcl into mindcraft-menu.tcl and mindcraft-window.tcl as
they were meant to be.
-
Split icon.c into icon1.c and icon2.c. Added "icon makeicon" command to
replace the (troublesome) external makeicon.exe program. Renamed interp.c
interp1.c.
New Features
-
Added the "Inspect (I)" command to the Inventory Menu in the Main Window,
to the context menu in the Inventory Window, and (in OAngbandTk) to the
Store/Home Menu and the context menu in the Store Window.
-
A small arrow in the Recall Window appears when there is more
information in the window than can be seen. This is useful when pointing
to a stack of objects and not knowing if there are more objects listed
below.
-
When choosing a book to cast or study from, only those books with any
valid spells are offered as choices.
-
Added the Action Menu to the Main Window. The Action Menu contains most of
the game commands which weren't already present in the other menus. Now
ZAngbandTk players needn't ask "How do I activate my Draconian's breath
weapon?".
-
The "Alter (+)" command will close an open door. The help file says the
command does, and it makes sense anyways.
-
When selecting a sound from the list of assigned sounds, the scroll position
of the list of sound files does not change, although the sound file is
still highlighted.
-
In the Knowledge Window, the current quest is displayed in a different color.
Any unrewarded quest is displayed in a different color.
-
The Character Flags Window now displays all the possible flags. Any
attributes which don't affect the character are grayed out.
-
All of the items in the Misc Window now display a help string in the Main
Window status bar (some already did). If a stat is damaged, pointing at the
stat will display the undamaged maximum; the same is true for experience
points and experience level.
-
Any item inscribed with "=g" (g as in 'g'et) will always be picked up
regardless of the pickup options if the item can be carried. It is useful
to inscribe bolts and arrows this way.
-
Typing '+' or '-' changes the scale of the Big Map. This could already
be done with a popup menu.
-
Added some "You are unaffected." messages when certain traps have no effect.
-
When attempting to wield a ring and both hands have rings, the user is
asked which ring to replace. Previously, the left ring was automatically
chosen.
-
When pointing to a pile of objects, the Recall Window now displays a
title such as "A pile of 2 objects:". The icon is set to the normal
pile image; the icon used to be blank.
-
Looking at a quest entrance displays the quest title, and displays information
about the quest in the Recall Window.
-
A different icon can be assigned to each character. Previously the user
could choose any icon for the current character, but that icon would then
be used for every other character as well.
-
Clicking the character image in the Misc Window pops up a menu of actions.
The actions include displaying the Assign Window (to change the icon),
displaying the Character Info and Character Flags Windows, and creating
a character dump.
-
The Assign Window now remembers with group and member are selected for each
page, just as the Knowledge Window does.
-
There is more feedback while initializing the icons during startup.
-
Items which were purchased in a store say "It was purchased." in the Recall
Window. Store-bought items never display the flavor, and this might
prevent confusion as to why.
-
Right-clicking the Building Window will pop up a list of inventory or
equipment items, if the game is waiting for the user to choose one.
Bug Fixes
-
A list of items is displayed in the Recall Window when pointing at a pile
of objects. It already did this, but there was an empty line displayed at
the end.
-
Walking into a door or trap with easy_open or easy_disarm repeats
if the always_repeat option is set. It already did this, but the command
would repeat indefinitely with a repeat count of 98.
-
Fixed a bug where the wilderness area would always be recreated when
leaving a building if it was ever recreated.
-
Fixed lots of problems with the context menu in the Book Window when
studying spells or prayers. It was not considering that prayers cannot
be explicitly chosen, and was incorrectly looking at the type of book
instead of the character's magic type.
-
Fixed a bug when converting monster lore from 2.1.0-2.1.1 savefiles. It
caused a crash when reading the last ghost entry (could of sworn this was
already tested).
-
The Store Window is now correctly updated after changing certain options
while in the store.
-
If a stat or the current experience points was displayed as "***" in the
Misc Window, it would not be correctly redrawn (or flashed) when being
drained or restored.
-
When inserting or deleting a sound assignment, and multiple events are
selected, the sound is inserted/deleted from each selected event. It used
to only insert/delete form the initially-selected event.
-
Prevent the "dungeon has not been generated yet" error if a -more-
prompt appears during level generation.
-
Fixed a display glitch with list in the Choose Game Window. The list item
background had "-outline {}" initially.
-
Using a lantern to refuel another lantern no longer destroys the
fuel-source lantern. An empty lantern cannot be used to fuel another
lantern. The prompt is now "Refill with which source of oil?" instead
of "Refill with which flask?".
-
Added a parenthesis after the char in the Recall Window for various lists,
to match the regular Inventory Window, Book Window, etc. The char is no
long the same color as the rest of the list item (it is white). Also made
sure that a colon is displayed after any title displayed in the
Recall Window.
-
Spaces are stripped from the end of lines in the character dump.
-
Fixed problems with recharging staffs in buildings. Added a display in the
Building Window when using the recharge service.
-
The Destroy entry in the Inventory Window popup now correctly handles
the auto_destroy and verify_destroy options, so that the user should
never need to give confirmation when destroying a known worthless item.
Code Changes
-
Renamed NSRecallMonster module to NSDisplayInfo. The file was renamed
display-info.tcl. This is used to display monster memory and object
memory.
-
Added the "prayer_or_spell" option to the "angband player" command which
returns either "prayer" or "spell" depending on whether the character
learns spells or prayers.
-
Added setupMode and setupCmd attributes to NSMenu which control the default
normal/disabled state of menu entries. This is to speed up the SetupMenus()
command of NSMainWindow.
-
Rewrote the "setting" command. It used to return a list of two values,
the current value of an option and the human-readable description of
the option. The new version of the command has "default", "desc", and
"set" suboptions, and is much more efficient and readable.
-
The quasi-event binding package now reports errors which occur during
BindEvent() by calling the Tcl_BackgroundError() routine. BindEvent()
also preserves the initial interpreter result and restores it after all
the bindings have been invoked.
-
Changed the Setting() command to return only the current value of an
option. SettingDesc() returns the human-readable description instead.
BirthSetting() was changed in the same way; BirthSettingDesc() returns
the human-readable description.
-
Added "exists" option to the "cave" command which returns TRUE if the
dungeon has been created.
-
The "Repeat NNN" and "Rest NNN" will display values in increments of
100, 10, 5, and 1 for ranges of 1000+, 100+, 10+, and 0+. This tends
to speed things up a bit.
-
Added the NSCanvist::InsertMany() command to insert many rows at once.
This might have a (small) impact on improving the performance of
canvas-lists.
-
Put braces around every expression in each call to "expr". This apparently
produces the best possible byte code for greater efficiency. Also used
the double() builtin instead of adding ".0".
-
Added "stat_name" option to the "angband info" command to get the lowercase
name of stats (strength, intelligence, etc).
-
Moved all the scattered Recall Window stuff into the NSRecall module, under
the command names RecallMonster(), RecallObject(), RecallQuest() etc.
-
Added the "special" field to the array returned by the "cave info" command.
This is so we can get the quest index for a quest entrance.
-
Added the "worthless" option to the "inventory" command. Returns TRUE if
the given inventory item is worthless. This is needed for destroying the
object in the Inventory Window.
New Features
-
The Store Window now displays menu help strings. Various menu
entries are displayed differently in the Home.
-
The Store Window now has a "Sell" menu containing a list of
inventory items which can be sold (or dropped in the Home).
-
The Assign Window now supports assigning multiple sounds to
monsters.
-
When 'l'ooking at a pile of objects, the ' ', '*' and '?' will
also display the list of objects in the pile. The 'x' key will also display
the list under the roguelike keyset. Originally, only the 'l' key worked, but
that is a direction key under the roguelike keyset.
-
Implemented the report_magics() routine at long last.
-
Spell names are colorized depending on "unknown", "untried", or
tried status in the Book Window. Idea from OAngband.
-
Unused options are displayed in a different color in the Options
Window, in addition to the "(unused)" notation already in place.
-
The Inventory Window toolbar now has an Entry which allows the
user to edit the inscription of the selected item. Just edit the inscription
and hit Enter. Entering an empty string removes the inscription.
-
Pointing to an object on the ground now displays the memory for that
object in the Recall Window. Piles were already displayed in this way.
Bug Fixes
-
Fixed long-standing problem where the list of sounds displayed in the
Sound Window was not taken from the current sound directory. The list of
sounds was always taken from lib/xtra/sound.
-
Clicking the right-most statusbar label in the Assign Window displays
the icon. It already did this, but we make sure the icon browser is actually
displayed (as opposed to the list of alternates, sounds, or sprites).
-
Fixed a long-standing bug with get_item() that didn't
properly show/hide the inventory/equipment window when ' ' or '*' was
typed.
-
The remember_recall option is ignored when using the Trump Tower to teleport
to a specific dungeon level.
-
Unidentified activateable items no longer appear in the Misc Window
popup menu, or in the <Control-ButtonPress-3> popup menu.
-
The "Purse:" label is no longer displayed in the Home.
-
Someone reported that a "sharing violation" occurred sometimes when
examining a monster (with the mouse). So I call Tcl_ResetResult()
to make sure the interpreter result is unshared before setting it.
-
When a monster is killed, any sound assigned to that monster is
stopped. It always did this, but didn't properly handle the case
when multiple sounds were assigned to a monster.
Code Changes
-
Added the "-store_will_buy" switch to the "inventory" command for
returning a list of inventory items which the current store will
buy.
-
Comments are properly ignored when reading the palette_256 file.
-
Better error messages are given if there is a problem reading the
palette_256 file. Either (a) the file could not be opened, or (b) there
aren't 256 colors in the file.
-
Added "d_attr" and "d_char" fields to "angband f_info info" command.
-
Added "return" commands to every proc, in accordance with the Tcl
style guide. Apparently this makes things more efficient as well.
-
Added an "inscription" field to the array returned by the "angband
inventory info" command.
-
Added "inscription" option to the "angband equipment/floor/inventory"
commands. This is a big hack which allows us to directory modify an
item's inscription.
-
Removed last traces of the global Notice variable an variable traces on
it. Added <Track-inventory> and <Track-object> quasi-events in place of
the Notice/trace combo. It seems NSInventory::InventoryChanged() was
never used, so all these changes are unused anyways.
-
The angband_notice() command was removed, in part due to the Notice()
variable being removed. A new command angband_close_game() is called
just before the game shuts down. The guts of this command come from
the old angband_notice() command.
-
Changed the relief in all the divider lines in windows from "sunken" to
"groove".
-
Added "command_rep" option to "angband player" command.
NSMainWindow::TrackOnce() does nothing if p_ptr->command_rep is > 0. This
is to overcome the rubble/tree movement in OAngband. Also, walking into
a door/trap with auto_repeat on.
-
Added "in_bounds" and "in_bounds_fully" options to the "angband cave"
command.
- Clicking the Message Window will toggle the inventory/spell/mindcraft/power
display. This is in addition to the previous behaviour of displaying the
previous message or bypassing the -more- prompt.
- Added menu help strings to the most of the windows.
- Fixed a bug where any trailing 'r' was stripped from the trigger of a
macro when displayed in the "Trigger" label. This was already fixed for
triggers displayed in the list of macros.
- Fixed the transparency color in "save.gif".
- Fixed problem with get_stats() in tcl-birth.c. It must have been using
the code from Angband, not ZAngband!
- The auto-roller screen in the Birth Window now displays the total
roll needed to create a character with the stats entered by the user. This
figure can be used to decide whether the auto-roller can possibly roll the
given combination of stats.
- Added the Find command to the Help Window (which was removed when the
TkHTML widget was added). I had to add "search" and "see" commands to TkHTML
in order for this to work.
- Made various cosmetic changes to make building under MS VC++ smoother.
- Merged together all the tk, tk/src and tk/library sources for all the
*AngbandTk games.
- Added a groovy About Window with a scrolling list of credits.
- The icon .icd and .msk files are now compressed using zlib.dll.
- Added "ascii isascii" command to see if an icon type has a font.
- Various other changes I forgot to write down.
- Prevent SND_ACTION_FAILED with always_pickup and a full pack
- Fixed problem with easy_sense and taking off cursed equipment
- Added IDENT_SENSE when trying to drop cursed equipment
- Made sure error is reported when parsing *_info.txt files
- sound_exit() checks if sound_init() was ever called
- Inventory Window "Threshold" is weight limit without speed penalty
- Improvements and fixes to py_pickup_floor()
- Only items which can be carried are listed with get_item() & easy_floor
- Fixed bug with easy_disarm and harmless traps (couldn't move onto them)
- Fixed "power" displays to allow choice a-z0-9 (was missing 0-9)
- Made "friendly" monster use the "pet" monster health bar colors
- Changed the Load Window to be more interesting
- Added Html-based help system using the TkHtml widget
- Double-clicking a radiobutton in Birth Window goes to next screen
- Added a message when "fetching" an item and there isn't one
- Added a visual effect when "fetching" an item
- Prevent "fetching" when the character isn't on a floor grid
- The character icon was not updated when the character race changed. I
had this working before, but somehow removed the lines from the script.
- Added "debug flags" command for getting list of flag names
- Added FLD_INDEX16 field type to debug.c stuff which means a field value
is actually an index into a table of strings instead of a number.
- Changed quest_type.type and quest_type.status to FLD_INDEX16 so that
"debug dumptype" returns textual names, not numbers
- The Pets Window allows point-and-click interaction with pets
- NSModule now supports auto-reloading of modules when the file modification
time changes.
- debug.c stuff now uses hash tables to look up field names and array types.
- Added player_class, monster_race types to debug.c stuff.
- Fixed a bug where pets were able to shoot through the character.
- Added a new map color for friends and pets.
- Changed the default monster health bar colors for pets to blue from green,
to match the Micro Map color.
- The previous roll in character creation is now available, just like
the original game.
- The Birth Options Window allows the user to set all the options which
can only be changed at character creation. The options are saved to the
tk/config/birth file.
- Fixed problem with Power Window and Book Window not setting the correct
row height.
- Corrected some graphics glitches, and added Adam Bolt's better feature
graphics (grass, dirt, water, lava).
- Each character image in an ascii icon type is centered horizontally. This
allows variable-width fonts to be used.
- Implemented the research_mon() routine
- Added Recall Monster Window for showing monster recall (see above)
- Target/Look now displays Recall Monster Window on 'r'
- "k_info find -known" matches known flavored objects (see below)
- Added Objects page to Knowledge Window for known flavored objects
- Changed search command in Knowledge Window to start from selection
- Changed search command in Assign Window to start from selection
- Changed search command in Choose Monster Window to start from selection
- Fixed bug with "Remove" entry in inventory window popup (it used 'T', not 't')
- Added Tcl_SetServiceMode() calls around MessageBox() when aborting game
- Added Font Window for font management
- Many windows changed to support own font, and variable-width fonts
- Added check to prevent Recall Window being "stuck" in expanded state
- Added "k_info object_desc" option to get object_desc_store() of kind
- Prevent "Monster wakes up." when the monster isn't in LOS and disturb_move=0
- Changed "*Destroy*" entry in inventory window popup to respect number of items
- Changed *Destroy* entry in inventory window popup to respect auto_destroy
- Added -boring and -town options to "feature configure" command
- "Memorize" and "Town Light" entries added to the Feature menu in Assign Window
- Fixed lighting problems in the town/wild
- More efficent handling of status messages when the text is unchanged
- Added "system mouse" command to get mouse button state
- Tried to fix "mouse command overflow" when key and mouse button held down
- Added "Lose mutation" sound
- Massive code cleanup and commenting (still much to do)
- Implemented object/monster hallucination at long last
- Added Find command to Options Window (search by keyword)
- Changed character dump to give name of town instead of "Town n"
- Changed tabs to respect system colors
- Added graphical preview of icon configuration in Choose Config Window
- Fixed problem with Inventory Window popup when INKEY_ITEM was set
- Removed *Destroy* entry from Inventory Window when in equipment
- Prevent Inventory Window popup with empty slots in equipment
- Added keyboard navigation to the Help Window
- Clicking and dragging in a micro-map scrolls it
- Removed "Quest Status", added "Feeling" to Other Menu
- Added "Maximize Windows" entry to Other Menu
- Fixed problem with trailing 'r' being stripped in Macro Window
- Added "-k_idx" switch to "inventory find" command
- Added "new_spells" option to "player" command
- Fixed the context menu & double-click action in the Book Window
- Pointing to a stack displays the contents in the Recall Window when the
easy_floor option is on
- Holding down the Shift key prevents describing what the pointer is over
- Fixed bug with Dark-Elf creation; added error checking to catch it later
- Added racial quasi-flags to the Character Flags Window
- Recall character history in Character Flags Window
- Fixed bug with pets in Knowledge Window
- Fixed bug with "debug find" command and m_max/o_max
- Added prompt to Choose Game Window
- Fixed "inventory count" bug being too high by 1
- Fixed easy_floor bug with "nothing" items
- Misc bug fixes from ZAngband bugs page
- Added message when GF_PSI in project_m() puts a monster to sleep
- Added missing SND_QUEST_DONE to carry()
- Rewrote detect_hook_monsters_nonliving() to use detection_aux()
- Prevent big status messages appearing more than once
- Rewrote idle-timer code to use Tcl_CreateTimerHandler() which reduces
idle processor usage from 100% to about 10%, and permits animation
during inner event loops!
- Added "allow_animation" option to enable/disable animation
- Added missing "Explode" monster attack sound assignment
- Attempt to split long "died from" message in Tomb Window
- quasi-event changes opacity of target display
- Changed smart-pack-monster behaviour to any open area, not just CAVE_ROOM
- Added "r_info plural" command for pluralizing monster name
- Pluralize monster names in Quest page of Knowledge Window
- Replaced "store inventory" with "store count" and "store info" commands
- Fixed problem with player_can_enter() and lava/water not being allowed
- Fixed infinite loop in alloc_monster() (ex mountain wilderness)
- Added code to prevent Misc Window popup appearing too far to the left
- The "easy_sense" option was added to the Game-Play Page.
- More window manager stuff (Undisplay, "focus -lastfor", etc)
- Added qeconfigure for deactivating bindings
- Fixed bug with store re-display when taking stacked item
- Character Info Window displays "Chaos Rank" and "Amber" ratings
- Stat bonuses greater than 220 are displayed as "18/***"
- Equipment bonus > 99 is displayed as "+++" in Character Info Window
- Bug fix with Mindcrafter spell failure changing "csp"
- Descriptions for "ambient" sounds changed in Sound Window
- New sound "quest_done" when quest is completed (not rewarded)
- Added "Quests" page to Knowledge Window
- Knowledge Window remembers selected group/member
- Added "easy_floor" option for floor stacks to User Interface page
- Added "-font" and "-charset" to the "icon createtype" command
- New "Ascii" icon configuration uses ascii character for icons
- Fixed bug with get_item() and ALLOW_REPEAT floor code
- Moved "feature gamma" to "icon gamma"
- Changed "debug info" command; added "text" to "debug info quest_type"
- Added expression evaluator to "debug find -field OP VALUE" option
- Visual indication of artifacts in the dungeon in Knowledge Window
- Sound directory can be changed in Sound Preferences Window
- Fixed bug with Find command in Message History Window
- Fixed bug with double-click in store (INKEY_ITEM_STORE was INKEY_STORE)
- Added "-flag FLAG" option to "r_info find" command
- Added "mutate" sound event
- Allow digits in character name
- Added Choose Monster window for choosing a race to genocide
- Further changes to the window-management code
- Progress bar in Sound Window
- Fixed bug with "keymap action" command
- Added "Kingly" window to handle winner death/retirement
- Fixed bug with earthquake() (monsters inside walls)
- Added "highscore" command for score-file reading/searching
- Choose Game window bindings for KeyPress-b/o select buttons
- Added message when monster kills other monster, if one is viewable
- Finally hooked in "monster_kill_other" sound
- Added big status message to Main Window; goes away after 1 second
- Added "listInactive" highlight color when focus isn't in lists
- Inventory Window now responds properly to PageUp, PageDown etc
- Main Window menus display keyboard equivalents where appropriate
- Revamped Keymap Window; can edit Control keymaps
- Experience To Advance is displayed as ***** at level 50
- Added "player cheat" command; Prompt before setting Cheat options
- Shake 'n bake during destroy_area()
- Added "Combine Messages" to combine identical messages; ex "You hit it. (x3)"
- Redisplay messages when "Max Messages" or "Combine Messages" changes
- Added quasi-event to notify of changes to the keymap
- Added action_fail sound when attempting to spike without spikes
- The -more- prompt is displayed in turquoise
- New user-friendly interface to probing() spell (ala 'l'ook)
- Birth Window "Back" button disabled when on first screen
- Birth Window bindings for KeyPress-b/n/q/Escape select buttons
- Startup Window bindings for KeyPress-n/o/q/s/Escape select buttons
- Tips Window bindings for KeyPress-b/n select buttons
- Added Ctrl-/Left/Right/Up/Down/ bindings to Big Map for keyboard scrolling
- Fixed bug where prompt not displayed in do_cmd_suicide()
- Added "player is_dead", "player turn", "player max_level" commands
- Predict the score of living character in the High Scores window
- Fixed bug where character name wasn't redisplayed if it changed
- Added high score entry for living character
- Added dumping of high scores to a text file
- Added searching for string in high scores
- Added highlighting of current character's high score (living or dead)
- Fixed "bug" where RNG not randomized when dead-character savefile loaded
- Added progress box when scanning saved games to open
- Double-click in Birth Window listbox moves to the next screen
- Added progress bar to Assign/Sprite Windows when listing icons
- Fixed bug with map(s) not showing correct features (store door, etc)
- New option "scroll_follow" to keep character centered in the display
- Default settings loaded when new character is created
- Added search function and Section Menu to Help Window
- Fixed bug with cursed status being described even if item wasn't identified
- Made all the "misc" windows sound-playing windows
- Fixed bug with throwing potion while standing on targetted location
- Changed Mutations display in Knowledge Window (no icons in the list)
- Visually flicker the character's light source when it is drained by monster
- Fixed nasty bug with g_grid[] becoming out-of-synch with cave_o/m_idx[]
- Attempted to optimize drawing of the micro-map widgets
- Other->Photo menu entry added; "widget photo" command
- FIXED "vertical row of unreal monsters" bug (my build_type5 cave_set_feat bug)
- Major reworking of window-management code.
- Faster startup due to delayed loading of some modules
- Added "maximum number of displayed messages" to Message History
- Added "show unused options" to Options Window
- Fixed bug with ambient_delay and monster_delay values not being saved
- Fixed bug where monster health bar was not updated after detect invisible
- Updated source to 2.1.1c
- Added "recenter" button to Main Window for when "scroll_follow" is off
ZAngbandTk 2.1.1r1 (August 1, 1998)
- The first release based on the updated code!
- Fixed bug where "Type '?' for help" prompt wasn't displayed
- Added current/max tip number to Tips Window
- Command "Quit without saving (Control-E)" added (was KTRL-Q before)
- Generate some quests when reading 2.1.0 savefile.
- Fixed bug with print_quest_message()
- Made sure Bookstore is stocked when reading 2.1.0 savefile.
- Added "Messages" button to Tomb Window for dumping messages
- Added "Quest Status" entry to "Other" Menu in Main Window
- Assigned Roguelike keymap for "Repeat last command (])"
- Gold/Object may be revealed when monster kills wall/rubble
- Fixed bug with bash/throw sounds reversed
- Fixed bug with earthquake grids not being updated
- Cleaned up code for assigning character icon automatically
- "-setgrid" option added to Widget's to help window resizing
- Main Window, Micro Map Window are dynamically resizeable
- Character icon auto-assigned when character race changes
- Improvements to Read/WriteGeometryFile() to handle window resizes
- Revamped "Other" options page; read & write tk/config/settings file
- Added quasi-event for when settings change
- Fixed bug in store choosing wrong items to buy (store_top)
- Scroll bar in Character Flags window only shown when needed
- Fixed bug where inverting a grid didn't work in 16x16 mode
- Sound groups "monster", "monster_spell" and "monster_attack" added
- Assign sounds to monsters in the Assign Window
- Fixed sound bugs (rod/scroll swapped, store/home swapped)
- Added Tips Window, tk/doc/tips.txt file
- Revamped Progress Window to show numbers and/or bars
- Configure appearance of Progress Window through popup
- Change the scale of Micro Map, Big Map through popups, save settings
- Added "Cancel" item to end of inventory popup, plain_descriptions
- Added Control-ButtonPress-3 popup for using items in inventory
- Added status bar to Options Window for displaying option keyword
- Sound system let's user assign multiple sounds per event
- Ambient sounds added; added ambient_delay to options screen
- Message History is displayed faster now - NSTexist::SetList()
- Added Find function, Dump command to Message History
- "Cur AC" changed to "AC" in Misc Window
- Click EXP, AC in Misc Window to toggle what is displayed
- Added "activate", "known" fields "inventory info" command
- Added "-activate" criteria to "equipment find" command
- Changed "map" button to "activate" button in Misc Window
- "equipment flags", "player flags" commands added
- Character Flags Window added (type 'h' to see flags in Character Info)
- Item recall much more strict ; considers "fully known" status
- "a_info" command looks for existing artifact to describe
- Added "a_info location" command to find out where an artifact is
- Knowledge Window displays location of selected artifact.
- Added cursor item to the detail widget when examining dungeon map
- Added "Activate" submenu to popup
- Fixed bug with magic realms being chosen incorrectly
- Fixed bug where "cursed" property of item wasn't displayed in Flags Window
- Changed Choose Game Window to display filename of selected game
- Added item recall of object pointed to in Flags Window
- Fixed bug with assigning sounds to monsters
- Added "monster_delay" sound setting for monster sound frequency
- Slider in Options Preferences for setting "monster_delay"
- Fixed bug with Choose Game Window when there are no savefiles
- Fixed bug with Choose Game Window when the "recent" savefile is gone
- Control-click icon in Misc Window to see Character Flags Window
- Fixed "permanent paralysis" bug ala Angband 2.8.3
The first public test release!