This file is indexed.

/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>