| 1 |
Angband 3.1.0 |
|---|
| 2 |
============= |
|---|
| 3 |
|
|---|
| 4 |
This is an Angband development version -- it may be buggy, so be warned! |
|---|
| 5 |
|
|---|
| 6 |
Thanks for this release go to: Eytan Zweig, pelpel, Kenneth Boyd, |
|---|
| 7 |
J.D. White, and more |
|---|
| 8 |
XXX fill in before release |
|---|
| 9 |
|
|---|
| 10 |
Leon Marrick's dungeon generator from O was imported briefly, but since |
|---|
| 11 |
he wasn't around to answer questions or improve it at all, it's been |
|---|
| 12 |
reverted (see revisions 306 and 612). Also, using the 3.0.x dungeon |
|---|
| 13 |
generator makes it much easier to balance the object allocation changes. |
|---|
| 14 |
The dungeon generator is scheduled for some attention sometime in the |
|---|
| 15 |
3.1.x series, but it's not my main concern right now. |
|---|
| 16 |
|
|---|
| 17 |
Noticeable up-front UI changes |
|---|
| 18 |
------------------------------ |
|---|
| 19 |
|
|---|
| 20 |
* Add EyAngband-style quickstart option. |
|---|
| 21 |
* Notes, like NPP and FA, except with brand new code by J.D. White. |
|---|
| 22 |
(#10) |
|---|
| 23 |
* Add a trap detection indicator (#19) |
|---|
| 24 |
* Make status bar display all timed effects, left-to-right, which |
|---|
| 25 |
involves moving the dungeon level to the bottom of the left-hand |
|---|
| 26 |
display. (#191) |
|---|
| 27 |
* Add show_lists option, which is the same as always_show_lists in |
|---|
| 28 |
Ey. (#25) |
|---|
| 29 |
* Auto-wield birth items (#24) |
|---|
| 30 |
* Change the object information screen quite a bit: (#214, #26) |
|---|
| 31 |
- Show average damage for weapons and ammo (#26) |
|---|
| 32 |
- Make descriptions a fair bit terser (#399) |
|---|
| 33 |
- Show breakage chance for ammo |
|---|
| 34 |
- Track item origin, so every item has a tag telling you where it |
|---|
| 35 |
came from (#149) |
|---|
| 36 |
* Recolour the monster recall: (part of #152) |
|---|
| 37 |
- Monster's depth is in red if it's beyond maximum depth, light green |
|---|
| 38 |
otherwise. |
|---|
| 39 |
* Add how many items the player already has when buying something at |
|---|
| 40 |
the store. (closes #151) |
|---|
| 41 |
* Allow use of the space bar to advance a screenful in all |
|---|
| 42 |
menus. (#244) |
|---|
| 43 |
* Make all menus wraparound at the top/bottom. (#244) |
|---|
| 44 |
* Monster recall display now cycles through monsters in level order, |
|---|
| 45 |
not in the order that the monster definition file is written |
|---|
| 46 |
in. (#302) |
|---|
| 47 |
* Add an indication of maximum capacity in the inventory |
|---|
| 48 |
display. (#358) |
|---|
| 49 |
* Menus should use 1234567890 as little as possible for "tags". (#292) |
|---|
| 50 |
* Remove the "depth_in_feet" option, instead displaying both the |
|---|
| 51 |
dungeon level and the depth everywhere. |
|---|
| 52 |
* Ensure that store-bought and birth-given torches have the same number |
|---|
| 53 |
of turns for stacking purposes. |
|---|
| 54 |
* Death screen now uses scrollable menu. (#416) |
|---|
| 55 |
* Drop squelched items |
|---|
| 56 |
* Append {tried} to tried items in the object browser (r606) |
|---|
| 57 |
* Put {tried} items before untried items in the object browser |
|---|
| 58 |
* The monster list display has a little more colour-coding |
|---|
| 59 |
* Death menu now uses a scrolly menu. |
|---|
| 60 |
|
|---|
| 61 |
|
|---|
| 62 |
Gameplay |
|---|
| 63 |
-------- |
|---|
| 64 |
|
|---|
| 65 |
* Remove autoscum. (#365) |
|---|
| 66 |
* Make point-based points worth less gold. |
|---|
| 67 |
|
|---|
| 68 |
Detection: |
|---|
| 69 |
Try a different approach at detection: make all of magic mapping and |
|---|
| 70 |
detect trap/door/stair/monster/item/treasure use the same width and |
|---|
| 71 |
height rectangular area around the player. |
|---|
| 72 |
|
|---|
| 73 |
Stores: |
|---|
| 74 |
* Phase Door is now a staple item. |
|---|
| 75 |
* Start stocking deeper items as the character descends. |
|---|
| 76 |
|
|---|
| 77 |
ID: |
|---|
| 78 |
* Make ID reveal all powers of an object, and remove *ID*. (#158) |
|---|
| 79 |
* Make pseudo-id not occur whilst resting, but also make pseudo-ID |
|---|
| 80 |
lengths shorter (by a little over half) to compensate. |
|---|
| 81 |
* Some items, when worn long enough, get automatically ID'd |
|---|
| 82 |
* Items pseudo-id'd as {average} are automatically ID'd, and thus will |
|---|
| 83 |
stack properly |
|---|
| 84 |
* Make wands/staffs stack even when un-ID'd |
|---|
| 85 |
* Remove "good" pseudo-ID, replace with "magical" -- for non-cursed |
|---|
| 86 |
non-average non-ego non-artifacts |
|---|
| 87 |
* Add "strange" pseudo-ID, for when items have mixed blessings |
|---|
| 88 |
* Stop automatically cursing all bad weaponry |
|---|
| 89 |
* Make weak pseudo-id notice the difference between magical and |
|---|
| 90 |
excellent |
|---|
| 91 |
* Stop making rings of Stupidity, Weakness, and Woe. |
|---|
| 92 |
* Allow any/all rings/amulets to be cursed if the game wants to |
|---|
| 93 |
generate a "bad" item. This is liable to be rethought in the future. |
|---|
| 94 |
|
|---|
| 95 |
|
|---|
| 96 |
Combat: |
|---|
| 97 |
* On shooters, slays affect rolled damage, not total damage, like |
|---|
| 98 |
combat. Also, transfer slays and brands from the shooter to |
|---|
| 99 |
ammunition. e.g. Cubragol is firebranded. This tones down ranged |
|---|
| 100 |
combat quite a bit at the high end. |
|---|
| 101 |
|
|---|
| 102 |
Monsters: |
|---|
| 103 |
|
|---|
| 104 |
Monsters have only had one change, but it's not a very noticeable one |
|---|
| 105 |
(hopefully): monster HP is specified as an average value around which to |
|---|
| 106 |
randomise, instead of using a "12d5"-type calculation. Uniques always |
|---|
| 107 |
have the number of HPs specified in the monster.txt file, like before. |
|---|
| 108 |
|
|---|
| 109 |
Pack AI for trying to confront the player in rooms was exploitable: it |
|---|
| 110 |
was not considering open spaces created by digging creatures or |
|---|
| 111 |
stone-to-mud, making it possible for the player to clear "safe" open |
|---|
| 112 |
space at the side of a room. Now the pack AI tries to attack in any |
|---|
| 113 |
open space where the player can be surrounded, not just room interiors. |
|---|
| 114 |
|
|---|
| 115 |
|
|---|
| 116 |
Objects: |
|---|
| 117 |
#310 #228 #311 #313 #316 |
|---|
| 118 |
|
|---|
| 119 |
There is a new object allocation algorithm, something like the Sangband |
|---|
| 120 |
system but not quite the same. This made it possible to rebalance the |
|---|
| 121 |
object rarities with better accuracy and knowledge of how such changes |
|---|
| 122 |
would affect the game. |
|---|
| 123 |
|
|---|
| 124 |
As a result, object rarities have undergone fairly extensive changes, |
|---|
| 125 |
especially with regard to consumables and rechargeables. Some items |
|---|
| 126 |
have been removed, some new ones have been added, and most rarities have |
|---|
| 127 |
been changed. There are a few quirks with the allocations as they |
|---|
| 128 |
stand, like speed potions being abnormally common on the first few |
|---|
| 129 |
dungeon levels. |
|---|
| 130 |
|
|---|
| 131 |
A selection of the most notable changes appear below: |
|---|
| 132 |
|
|---|
| 133 |
- Water and Apple Juice are gone. |
|---|
| 134 |
- Various potions have a tendency to appear in stacks. |
|---|
| 135 |
- Reduce the number of food varities in the game. |
|---|
| 136 |
- Add a new timed telepathy effect to some items |
|---|
| 137 |
- Make potions of CLW, CSW, CCW heal a proportion of wounds, not just |
|---|
| 138 |
a set value. In the process, make all the potions more useful, to |
|---|
| 139 |
the point where even CLW can be used usefully; CSW is about as useful |
|---|
| 140 |
as the old CCW, and CCW is now only found in the dungeon -- albeit in |
|---|
| 141 |
piles. (#313) |
|---|
| 142 |
- Add a selection of "gain one, lose one" stat potions to replace the |
|---|
| 143 |
old stat loss potions-- they guarantee a stat to raise and reduce one |
|---|
| 144 |
randomly. |
|---|
| 145 |
- Stop Broken Daggers being generated, make Filthy Rags [0,+0], and |
|---|
| 146 |
make Broken Swords (+0,+0) by default. |
|---|
| 147 |
- Stop fixing the flavour for slime mold juice. |
|---|
| 148 |
- The Elven Rings have a variety of healings, at the suggestion of |
|---|
| 149 |
Timo. Also, apply some other changes from the TV-patch (r428) |
|---|
| 150 |
- Bad potions (confusion and the like) have a more damaging effect than |
|---|
| 151 |
good potions when thrown. This is like a lazy version of potions |
|---|
| 152 |
actually having the proper effect on monsters they hit. |
|---|
| 153 |
- Make torches always be found at 5000 turns, and lanterns at 7500 |
|---|
| 154 |
turns |
|---|
| 155 |
|
|---|
| 156 |
|
|---|
| 157 |
Port |
|---|
| 158 |
---- |
|---|
| 159 |
|
|---|
| 160 |
* X11: Add -x commandline option for choosing the location of the |
|---|
| 161 |
settings file (#333, patch by morth) |
|---|
| 162 |
* GTK2: Continue work; add term windows, graphics, etc. and also some |
|---|
| 163 |
special dedicated display windows, like "messages" and "monster |
|---|
| 164 |
list". (shanoah) |
|---|
| 165 |
|
|---|
| 166 |
|
|---|
| 167 |
Code-level |
|---|
| 168 |
---------- |
|---|
| 169 |
|
|---|
| 170 |
A lot of code-level cleanup has been applied to this release, much of it |
|---|
| 171 |
still in flux. Many new files have been split out of existing files, |
|---|
| 172 |
which should now have much more self-explanitory names. |
|---|
| 173 |
|
|---|
| 174 |
There is also a new generic effects handler so that all item activations |
|---|
| 175 |
and use abilities share the same code; this replaces use-obj.c and a lot |
|---|
| 176 |
of descriptions from lib/edit/object.txt. (#234) |
|---|
| 177 |
|
|---|
| 178 |
Memory handling has been reviewed. Now, all code should assume that |
|---|
| 179 |
allocation will succeed, just like it did already. There is also a |
|---|
| 180 |
realloc()-style function along with its own hook. string_make() has |
|---|
| 181 |
been modified to no longer return a "const char *", and so all the code |
|---|
| 182 |
now only uses "const" when it means "const". Some macros have been |
|---|
| 183 |
removed. |
|---|
| 184 |
|
|---|
| 185 |
"Elly" rewrote the message and quark packages, previously in util.c, |
|---|
| 186 |
and in the process split them out into their own z- files. The z-msg |
|---|
| 187 |
package is now much more understandable but marginally less "efficient", |
|---|
| 188 |
and certainly less "optimised". |
|---|
| 189 |
|
|---|
| 190 |
Option definitions have moved to option.h, and the names and |
|---|
| 191 |
descriptions for options have moved to option.c. Option data is now |
|---|
| 192 |
stored in a much more visually compact way, much more suitable for |
|---|
| 193 |
editing than the old system was. (#64) |
|---|
| 194 |
|
|---|
| 195 |
Additionally, a new file API has been introduced which combines the |
|---|
| 196 |
previous mishmash of fd_*() and my_f*() calls into a simpler, better |
|---|
| 197 |
documented interface. (#137) |
|---|
| 198 |
|
|---|
| 199 |
Set up an event system for UI display updates, where the game |
|---|
| 200 |
communicates with the UI by sending messages saying that something's |
|---|
| 201 |
changed that the UI might be interested in, rather than deciding that |
|---|
| 202 |
specific things should be redraw. The main screen updates all use this |
|---|
| 203 |
system now. Amongst other things, this system should help things like |
|---|
| 204 |
the borg and graphical frontends, because they can hook right into |
|---|
| 205 |
changes in state. (#348) |
|---|
| 206 |
|
|---|
| 207 |
object1.c and object2.c have been split out into a series of files, |
|---|
| 208 |
obj-{desc,make,ui,util}.c. This makes it much easier to remember what |
|---|
| 209 |
is where. Also, object_desc() has seen a rewrite, so hopefully it's a |
|---|
| 210 |
lot more hackable now. |
|---|
| 211 |
|
|---|
| 212 |
The beginnings of an organised code documentation scheme have started, |
|---|
| 213 |
using doxygen. Makefile.std provides an easy mechanism to generate docs |
|---|
| 214 |
(try "make docs"). |
|---|
| 215 |
|
|---|
| 216 |
There is some new and preliminary load/save code, which has involved |
|---|
| 217 |
creating a host of new files: |
|---|
| 218 |
- z-blockfile deals with "tar"-like blocks of data, where each block |
|---|
| 219 |
contains a number of records |
|---|
| 220 |
- z-smap is a serialisable map type, used to store values in the |
|---|
| 221 |
blockfile |
|---|
| 222 |
- compress is a quick and space-efficient compression algorithm stolen |
|---|
| 223 |
from "liblzf". |
|---|
| 224 |
|
|---|
| 225 |
The new code is much easier to use and read, but it's not ready for use |
|---|
| 226 |
by anyone who cares about their characters yet. |
|---|
| 227 |
|
|---|
| 228 |
Other assorted changes: |
|---|
| 229 |
* Remove a whole load of useless or unused configuration options from |
|---|
| 230 |
config.h. |
|---|
| 231 |
* "make -f Makefile.inc depgen" will output "Makefile.new", which then |
|---|
| 232 |
contains up-to-date dependencies for the project. |
|---|
| 233 |
* Add "flags" back to object_type, removing the need for the hacky |
|---|
| 234 |
"xtra" bytes. This paves the way for e.g. fireproofing scrolls |
|---|
| 235 |
later. (#120) |
|---|
| 236 |
* Makefile for MSVC/NMAKE command-line build. Currently works with |
|---|
| 237 |
MSVC 6+; flags could use tweaking for MSVC 8+. |
|---|
| 238 |
* Clean up racial and class skill values into arrays. (Kenneth Boyd) |
|---|
| 239 |
* Use header file guards in all header files, and use a consistent |
|---|
| 240 |
naming scheme for them ("Elly") |
|---|
| 241 |
* Add a very basic test harness for "unit testing" of the game's code, |
|---|
| 242 |
though this is barely used at present. Thanks to Fennec for cleaning |
|---|
| 243 |
this up a bit. |
|---|
| 244 |
* Introduce the one_in_() notation to the game, for percentile dice. |
|---|
| 245 |
|
|---|