/usr/share/doc/angband-doc/mods.html is in angband-doc 3.0.3.5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 | <HTML>
<HEAD>
<TITLE>Angband -- Changes</TITLE>
</HEAD>
<BODY>
<H1>Angband -- Changes</H1>
<P>
This page lists "changes" in recent versions of
<A HREF="http://www.phial.com/angband/">Angband</A>.
</P>
<H2>Table of Contents</H2>
<UL>
<LI><A HREF="#A283">Changes made for Angband 2.8.3</A></LI>
<LI><A HREF="#A282">Changes made for Angband 2.8.2</A></LI>
<LI><A HREF="mods-28X.html#A281">Changes made for Angband 2.8.1</A></LI>
<LI><A HREF="mods-28X.html#A280">Changes made for Angband 2.8.0</A></LI>
<LI><A HREF="mods-27X.html#A279v6">Changes made for Angband 2.7.9v6</A></LI>
<LI><A HREF="mods-27X.html#A279v5">Changes made for Angband 2.7.9v5</A></LI>
<LI><A HREF="mods-27X.html#A279v4">Changes made for Angband 2.7.9v4</A></LI>
<LI><A HREF="mods-27X.html#A279v3">Changes made for Angband 2.7.9v3</A></LI>
<LI><A HREF="mods-27X.html#A279v2">Changes made for Angband 2.7.9v2</A></LI>
<LI><A HREF="mods-27X.html#A279v1">Changes made for Angband 2.7.9v1</A></LI>
</UL>
<HR>
<A NAME="A283"></A>
<H2>Changes made for Angband 2.8.3</H2>
<UL>
<LI>
The "lib/file/news.txt" file was redesigned. Various of the online
help files were updated slightly. Much commenting was performed.
</LI>
<LI>
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).
</LI>
<LI>
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.
</LI>
<LI>
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.
</LI>
<LI>
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).
</LI>
<LI>
The "NOT" expression in user pref files has been fixed.
</LI>
<LI>
The "interact with macros (and keymaps)" screen now uses a more user
friendly method for macro/keymap creation.
</LI>
<LI>
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.
</LI>
<LI>
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.
</LI>
<LI>
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.
</LI>
<LI>
Nar the Dwarf now has the "ONLY_ITEM" flag.
</LI>
<LI>
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.
</LI>
<LI>
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.
</LI>
<LI>
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.
</LI>
<LI>
The "main-win.c" file now recognizes "keypad 5" (and various other
special keys, such as "pause").
</LI>
<LI>
The "main-win.c" and "main-mac.c" files no longer allow the game to be
saved when it is in an inconsistant state.
</LI>
<LI>
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.
</LI>
<LI>
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.
</LI>
<LI>
The "target" code was wrapped lightly in an interface. The "macro"
and "quark" and "message" packages were wrapped lightly as well.
</LI>
<LI>
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.
</LI>
<LI>
The "main-xaw.c" file now saves all keypress events in "old_td",
which should fix some old bugs.
</LI>
<LI>
The "update_flow()" function was optimized.
</LI>
<LI>
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.
</LI>
<LI>
Multi-page self knowledge displays have been fixed.
</LI>
<LI>
A source only beta release of Angband 2.8.2 with the changes below
has been released for testing purposes only.
</LI>
<LI>
Minor cleanups (comments, indentation, and such).
</LI>
<LI>
Most global array variables are now dynamically allocated.
</LI>
<LI>
Allow "special" artifacts to be created in any order.
</LI>
<LI>
Only the "cave_set_feat()" function may change features.
</LI>
<LI>
Cleaned up "generate.c" with some higher level functions.
</LI>
<LI>
Optimized "message_add()" and "object_desc()" functions.
</LI>
<LI>
Major optimizations of various "cave.c" functions.
</LI>
<LI>
New "project_path()" function (using actual range).
</LI>
<LI>
New "update_view()" code (absorbed "update_lite()").
</LI>
<LI>
The entrances to shops are now more widely illuminated.
</LI>
<LI>
Compilation option for "new field of view algorithm".
</LI>
<LI>
Compilation option for "complex wall illumination".
</LI>
<LI>
Option "hidden_player" to hide player when running.
</LI>
<LI>
Option "verify_destroy" to verify object destruction.
</LI>
<LI>
Option "verify_special" to verify unsupported commands.
</LI>
<LI>
Option "allow_quantity" to allow quantity specification.
</LI>
<LI>
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.
</LI>
<LI>
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.
</LI>
<LI>
A new bitmap file has been uploaded for Windows Angband, and
the precompiled archive has been recreated using the new file.
</LI>
<LI>
New "ext-mac" and "ext-win" archives have been uploaded.
</LI>
</UL>
<HR>
<A NAME="A282"></A>
<H2>Changes made for Angband 2.8.2</H2>
<UL>
<LI>
The "help" files have been cleaned up and updated (a little).
</LI>
<LI>
Filling up the object array in "drop_near()" and "place_object()"
will no longer result in the possible permanent loss of artifacts.
</LI>
<LI>
The "sounds" have been cleaned up somewhat, but they are still
really stupid.
</LI>
<LI>
The "show_choices" option, if active, and if only one sub-window
is being used to display inventory or equipment, will temporarily
take control of that sub-window to make sure it always displays
the "relevant" screen during item selection. This is independant
of the "ctrl-e" command, which changes the "default" display.
</LI>
<LI>
The useless "display spell info in a sub-window" option has been
replaced with a new "display player flags in a sub-window", using
the new "display_player(2)" method. The only way to see a list
of spells is to activate "object recall" in a window (possibly
the same one in which "monster recall" is active), and then you
will see your "most recently selected spellbook" spells. Also,
stat modifiers are always "known" in the "player flags" display.
</LI>
<LI>
The heroism and beserk strength potions no longer affect maximum
health, but they still do a small amount of healing when used.
</LI>
<LI>
The "color" handling was cleaned up in "main-win.c", "main-mac.c",
and "main-x11.c". The default colors for "dark gray" and "blue"
were made slightly "lighter".
</LI>
<LI>
The source files were cleaned up. Various comments were updated.
</LI>
<LI>
The "xtra object flags" from old savefiles are ignored. Some new
flags (resist fear, lite, dark) have been added to the "resist" set.
</LI>
<LI>
Objects now lose their "marked" flag when picked up from the ground.
Old savefiles will be repaired.
</LI>
<LI>
The "other_query_flag" option allows the user to choose items from
floor stacks, instead of just auto-choosing the first legal item.
</LI>
<LI>
The spoiler file generation code had a few syntactic flaws.
</LI>
<LI>
The "graphics" support for the Amiga, Macintosh, and Windows versions
have all been unified, and they all use the same "graf-xxx.prf" file.
</LI>
<LI>
The "main-win.c" has been rewritten, and seems to work. It now uses
the "standard" bitmap file, and can handle any "tile size", whether
or not there is a font available in that size, though the interface
is pretty annoying.
</LI>
<LI>
Five more (obvious) types of ego-ammo are half-added to the game.
</LI>
<LI>
The "cheating" options are handled in a standardized manner.
</LI>
<LI>
Using the "option" screen now induces a complete "redraw" because
people get confused otherwise. The "do_cmd_redraw()" command now
completely redraws the current "lite" and "view" regions.
</LI>
<LI>
When the player dies, the "savefile" is now untouched until after
the "tombstone" is displayed. This will facilitate some forms of
savefile abuse which were disabled a few versions back.
</LI>
<LI>
Warriors now get intrinsic "resist fear" at player level 30.
</LI>
<LI>
When saving the game, monster/object compaction is now synchronized,
preventing a variety of bizarre bugs.
</LI>
<LI>
The "z-term.c" file no longer induces occasional graphics glitches.
</LI>
<LI>
Paralysis attacks on a paralyzed player always do at least one hp of
damage. This should prevent "infinite paralysis" from floating eyes.
Being paralyzed or stunned now prevents regeneration just like being
cut or poisoned (or starving).
</LI>
<LI>
The "main.c" file now allows specific "visual display systems" to be
chosen, and allows "command line args" to be passed to the underlying
"main-xxx.c" file. The "main-x11.c" and "main-xaw.c" files are better.
</LI>
<LI>
The "rubble" terrain is now a "pile of rubble".
</LI>
<LI>
Some code has been cleaned up somewhat, including the "sector" code,
the "haggling" code, the "running" code, the "get_item()" code, and
the "object_forge" code.
</LI>
<LI>
Some functions have been optimized, including "update_view()",
"update_lite()", "update_mon()", and "process_monsters()".
</LI>
</LI>
<LI>
The old "cave" variable was split into several global two dimensional
arrays, one for each field in the old "cave_type" structure. All of
these new variables, and some of the old variables, are now allocated
in global memory, instead of dynamically on the heap, for efficiency.
</LI>
<LI>
The "option" variables were moved into the player structure as an
array of bool's, and the global "option" structures were broken out
into several different arrays. The old "allow_stack" options were
replaced by the new stack/carry options. The "show_details" option
now defaults to TRUE.
</LI>
<LI>
The old negative "c_ptr->m_idx" semantics have been restored. The
player grid now always contains a "c_ptr->m_idx" value of -1. A new
"monster_swap()" function has been added to swap the locations of any
two monsters and players, by location. A new "player_place" function
has been added to control initial player placement.
</LI>
<LI>
Savefiles containing dungeons with illegal depth, size, or player
location (including all old "town" levels) will be ignored, and the
player will be placed in a newly generated town level. Any savefile
checksums from old versions are also ignored.
</LI>
<LI>
The "town" is now centered in a large field of solid walls, and the
panel always causes the town to be "centered" on the screen, except
when the "view world" command is being used. All dungeon levels are
now the same size, though smaller levels may be created if desired
by filling the rest of the dungeon with perma-walls.
</LI>
<LI>
The "cur_hgt" and "cur_wid" variables have been replaced by direct
reference to the DUNGEON_HGT and DUNGEON_WID compilation constants,
which replace the old MAX_HGT and MAX_WID compilation constants.
</LI>
<LI>
The "tval_to_char" array has been removed. The "use_color" option
has been converted into an "inventory_colors" option, which allows
the "tval_to_attr" array to be used. You must now redefine all the
standard colors to "white" to totally disable the use of color, and
even that will only affect the physical appearance.
</LI>
<LI>
You must now use the "repeat count" method to specify any quantity
above one for any command, including the buy/sell store commands.
The "zero" count may be used to special "all" of a stack, which
also disables the confirmation for the "destroy" command.
</LI>
<LI>
High stats are now displayed "correctly" (not as "18/***").
</LI>
<LI>
The use of various pointer variables was standardized.
</LI>
<LI>
The "resistance" screen was cleaned up, more flags were added,
footers were added, the columns are now color coded by parity,
and the equippy chars use the actual object attr/chars.
</LI>
<LI>
All of the "do_cmd_xxx()" functions now take no arguments, so
"do_cmd_help()" lost an argument, and "do_cmd_walk()" and
"do_cmd_stay()" were broken into sub-functions.
</LI>
<LI>
Only walking and running induce standard player movement. This has
affected the semantics of bashing and disarming.
</LI>
<LI>
The "extra shots" and "extra might" flags were turned into flags which
are modified by "pval". The artifact launchers were slightly rebalanced,
changing Cubragol from "M*4" to "M*3", Belthronding from "M*6,D+3" to
"M*6,D+1", and Bard from "M*4,D+3" to "M*5,D+2".
</LI>
<LI>
The object flags were reorganized slightly for various reasons. Some
of the object flags were renamed. The "RES_FEAR" object flag was added.
All objects which grant immunity also grant resistance, for consistency.
</LI>
<LI>
The "p_ptr" structure was cleaned up somewhat, and absorbed many global
variables, as well as a few newly created ones.
</LI>
<LI>
The initialization of options was moved into "init2.c" and "load2.c"
where it belonged. The "X"/"Y" actions can now be used in "pref.prf"
to set "default" options, and in "user.prf" to set "override" options.
</LI>
<LI>
The ability to conditionally evaluate sections of user pref
files based on the current "system", and/or player class or
race or name has been added. The standard user pref files
have been converted to use this method. The "RACE.prf" and
"CLASS.prf" files are no longer included explicitly, and any
old files should be moved into "user.prf" with conditionals.
The game now loads "pref.prf" during initialization, one of
"font.prf" or "graf.prf" during "reset_visuals()", and then
"user.prf" and "PLAYER.prf" after a character is prepared.
</LI>
<LI>
The "wizard" flag no longer grants telepathy, but there is a new
"detect all monsters" debug command.
</LI>
<LI>
Offscreen monsters can be "visible" if appropriate, and messages about
such monsters will mention the fact that they are currently "offscreen".
</LI>
<LI>
Telepathy on "weird mind" monsters will now work on some monsters,
all of the time, instead of on all monsters, some of the time.
</LI>
<LI>
Monsters now stay fully visible while detected, so that, for example,
the "center map" and "redraw" commands will not cancel the effects of
"detect monsters". The "mflag" repair code has been rewritten.
</LI>
<LI>
The player can now tunnel through doors, they are harder than anything
except granite. You may also tunnel through secret doors, and there is
a (small) chance you will find the door while digging.
</LI>
<LI>
New "floor_carry()", "monster_carry()", "monster_place()" functions
were created, unifying a lot of redundant code. Objects can now combine
when picked up by monsters.
</LI>
<LI>
Normal commands which take a direction now verify that the direction
makes sense before applying confusion and attempting the action. It
is now illegal to attempt some actions on an unknown grid. The "alter"
command chooses the action based on the requested grid, which may or may
not work if the player is confused.
</LI>
<LI>
The recall window updating code has been optimized, and is only performed
when the player is about to type a command.
</LI>
<LI>
A bug in "excise_object_idx()" meant that if you picked up an object from
the middle of a stack, then the objects below that one will be "invisible"
until you save/restore.
</LI>
<LI>
The "main-mac.c" file was modified to use the "modern" names for all
"Toolbox" functions, to allow compilation with the latest version of
CodeWarrior. Note that the resulting executable cannot read "Unix"
style text files.
</LI>
<LI>
The "toggle choice window" command was restored to "^E", so that the
"tab" key ("^I") can be saved for something special in the future.
</LI>
<LI>
A new command, "knowledge", has been created, and bound to the "~"
(and "|") key, absorbing the old "known artifacts" and "known uniques"
commands, and adding a new (silly) sub-option for "known objects".
</LI>
<LI>
The "object_flags_known()" function now assumes that the player knows
the "standard" properties of all ego-items.
</LI>
<LI>
The "update_view()" function was excessively optimized, so that in
certain circumstances, certain perma-lit wall grids were not memorized
or displayed when they should have been. Making all perma-lit walls
"translucent" would have fixed all these problems, and would make the
game faster, but would cause annoying visual and semantic weirdness
when a dark hallway was placed next to a lit room.
</LI>
<LI>
The official source upload contains a bad Makefile, some bad function
stubs in "main.c", and a disabled "username()" function in "util.c".
The "Makefile" may by default generate an executable called "testing".
</LI>
<LI>
Some early uploads contained a bug which caused the "sex" of new
characters to be an illegal value.
</LI>
</UL>
<HR>
<P>
Go back to the <A HREF="http://www.phial.com/angband/">
Official Angband Home Page</A>
</P>
<ADDRESS>
See also Ben Harrison's Home Page /
<A HREF="http://www.phial.com/benh/">Ben Harrison</A> /
<A HREF="mailto:benh@phial.com">benh@phial.com</A>
</ADDRESS>
</BODY>
</HTML>
|