root/trunk/changes.txt

Revision 1020, 11.4 kB (checked in by takkaria, 2 months ago)
  • Update changelog.
  • Move some functions from obj-util.c to the more appropriate generate.c.
  • Property svn:eol-style set to native
Line 
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, Eddie Grove, Rowan Beentje, Nick McConnell, Gabriel
8 Cunningham, Shanoah Alkire, Alexander Philips, mikon, Antony Sidwell,
9 and all the alpha- and beta- testers who downloaded the game,
10 sometimes in an extremely shaky state, and played it anyway.
11
12 Noticeable up-front UI changes
13 ------------------------------
14
15  * Add EyAngband-style quickstart option.
16  * Notes, like NPP and FA, except with brand new code by J.D. White.
17    (#10)
18  * Add a trap detection indicator.  Also, colour the edges of trap-
19    detected areas green. (#19)
20  * Make status bar display all timed effects, left-to-right, which
21    involves moving the dungeon level to the bottom of the left-hand
22    display. (#191)
23  * Add show_lists option, which is the same as always_show_lists in
24    Ey. (#25)
25  * Auto-wield birth items (#24)
26  * Change the object information screen quite a bit: (#214, #26)
27    - Show average damage for weapons and ammo (#26)
28    - Make descriptions a fair bit terser (#399)
29    - Show breakage chance for ammo
30    - Track item origin, so every item has a tag telling you where it
31      came from (#149)
32  * Recolour the monster recall: (part of #152)
33    - Monster's depth is in red if it's beyond maximum depth, light
34      green otherwise.
35  * Add how many items the player already has when buying something at
36    the store.  (closes #151)
37  * Allow use of the space bar to advance a screenful in all
38    menus.  (#244)
39  * Make all menus wraparound at the top/bottom.  (#244)
40  * Monster recall display now cycles through monsters in level order,
41    not in the order that the monster definition file is written
42    in.  (#302)
43  * Add an indication of maximum capacity in the inventory
44    display.  (#358)
45  * Menus should use 1234567890 as little as possible for "tags".  (#292)
46  * Remove the "depth_in_feet" option, instead displaying both the
47    dungeon level and the depth everywhere.
48  * Ensure that store-bought and birth-given torches have the same number
49    of turns for stacking purposes.
50  * Death screen now uses scrollable menu. (#416)
51  * Drop squelched items
52  * Append {tried} to tried items in the object browser (r606)
53  * Put {tried} items before untried items in the object browser
54  * The monster list display has a little more colour-coding
55  * Death menu now uses a scrolly menu.
56  * Preserve mode has a sensible description again.
57  * Try and differentiate the level feelings more.
58  * Add the moderately well-tested "lazy movement" patch which allows a
59    movement delay to be set, during which it is possible to choose a
60    second direction.  This means that up and left in quick succession
61    can be translated to an actual diagonal.  This may improve some
62    people's laptop playing experience without resorting to the
63    roguelike keyset.
64  * Add bigscreen support to the self-knowledge screen.
65  * Make inscriptions like "!k!k!k" prompt multiple times again.  (#492)
66  * Make monster XP and native depth always known, even without
67    kills.  (#596)
68  * Rejig social status a bit -- it rises with level from a certain baseline.
69  * Display various skills numerically on the character sheet, rather than
70    with text.  This is like Eddie's patch, but a bit more polished.
71
72
73 Gameplay changes
74 ----------------
75
76 There are some pretty big gameplay changes.
77
78 The object list has been reworked quite a bit.  It is a bit more
79 varied and has less duplication.  Some items have been removed and
80 others added.  The new items have had relatively little testing and
81 may be gone again next release.
82  - The number of items that monsters drop has been reduced drastically.
83  - Potions tend to appear in stacks now.
84  - The range of food items has been reduced.
85  - Healing heal a proportion of wounds, not just a set value-- this
86    makes all the potions useful.
87  - Add a selection of "gain one, lose one" stat potions to replace the
88    old stat loss potions-- they guarantee a stat to raise and reduce one
89    randomly.
90  - The Elven Rings have a variety of healings, at the suggestion of
91    Timo.  Also, apply some other changes from the TV-patch (r428)
92  - Replace the sustain {stat} rings with sustain mind and sustain body,
93    providing three sustains each.
94  - (#543) Make ammo of slay evil/venom apply to Mithril ammo too.
95
96 Gold drops have also been reworked.  By the end of the game, there is
97 about 3.6x less gold per drop than in any earlier version or Angband
98 or Moria, but the amount per drop at the beginning of the dungeon
99 is quite similar to pre-existing levels.  You may be interested in
100 looking at http://rephial.org/research/avg_gold_drop.pdf for an
101 illustration.
102
103 Magic mapping and detection use the same-sized rectangular area around
104 the player regardless of screen size.
105
106 Birth:
107  * Make point-based points worth less gold.
108  * Minimum starting gold is 200AU.
109  * Add an option to start the character with 500AU but no equipment.
110  * Point-based character generation is now equivalent to best available
111    from the autoroller.  (Eddie Grove)
112  * All characters start with WoR.
113
114 Stores:
115  * Phase Door is now a staple item.
116  * Start stocking deeper items as the character descends.
117  * Rewrite the rules for shopkeepers
118    - Remove individual-shopkeeper and race-based price changes from the
119      store code, to make it easier to balance pricing.
120    - Adjust adj_chr_gold[] values upwards to represent the average-110%
121      inflation usually applied by the individual-shopkeeper greed
122      values.  This should really be applied to the object.txt file
123      instead, though.
124
125 ID:
126  * Make ID reveal all powers of an object, and remove *ID*.  (#158)
127  * Make pseudo-id not occur whilst resting, but also make pseudo-ID
128    lengths shorter (by a little over half) to compensate.
129  * Some items, when worn long enough, get automatically ID'd
130  * Items pseudo-id'd as {average} are automatically ID'd, and thus will
131    stack properly
132  * Make wands/staffs stack even when un-ID'd
133  * Remove "good" pseudo-ID, replace with "magical" -- for non-cursed
134    non-average non-ego non-artifacts
135  * Add "strange" pseudo-ID, for when items have mixed blessings
136  * Stop automatically cursing all bad weaponry
137  * Make weak pseudo-id notice the difference between magical and
138    excellent
139  * Allow any/all rings/amulets to be cursed if the game wants to
140    generate a "bad" item.  This is liable to be rethought in the future.
141
142 A small selection of other changes:
143  * Remove autoscum.  (#365) -- really?
144  * Add minimum depths for each kind of trap.  As such, only teleport and
145    confusion traps occur at dlev1.  This should help some people.
146  * Make the rogue slightly better at combat than the ranger, based on Timo's sugges
147    tion.  (Message-ID: <651vknF2cvjl2U1@mid.individual.net>)
148  * Lower the distance missile weapons can fire into the 10-14 grids range.
149  * Make monster arrow attacks sometimes miss.  (#537)
150  * Some improvements to monster AI.
151
152
153 Port
154 ----
155
156  * X11: Add -x commandline option for choosing the location of the
157    settings file (#333, patch by morth)
158  * GTK2: Continue work; add term windows, graphics, etc. and also some
159    special dedicated display windows, like "messages" and "monster
160    list". (shanoah)
161  * OS X: the OS X version is now a universal binary, and runs faster,
162    better, quicker, and with more sound than before.  (Rowan Beentje)
163
164
165 Code-level
166 ----------
167
168 Monster HP is now specified as an average value around which to
169 randomise, instead of using a "12d5"-type calculation.  Uniques always
170 have the number of HPs specified in the monster.txt file, like before.
171 This is copied from Ey.
172
173 A lot of code-level cleanup has been applied to this release, much of it
174 still in flux.  Many new files have been split out of existing files,
175 which should now have much more self-explanitory names.  The player/,
176 monster/ and object/ subdirectories have been created, to aid seperation
177 of code.
178
179 There is also a new generic effects handler so that all item activations
180 and use abilities share the same code; this replaces use-obj.c and a lot
181 of descriptions from lib/edit/object.txt. (#234)
182
183 Memory handling has been reviewed.  Now, all code should assume that
184 allocation will succeed, just like it did already.  There is also a
185 realloc()-style function along with its own hook.  string_make() has
186 been modified to no longer return a "const char *", and so all the code
187 now only uses "const" when it means "const".  Some macros have been
188 removed.
189
190 "Elly" rewrote the message and quark packages, previously in util.c,
191 and in the process split them out into their own z- files.  The z-msg
192 package is now much more understandable but marginally less "efficient",
193 and certainly less "optimised".
194
195 Option definitions have moved to option.h, and the names and
196 descriptions for options have moved to option.c.  Option data is now
197 stored in a much more visually compact way, much more suitable for
198 editing than the old system was. (#64)
199
200 Additionally, a new file API has been introduced which combines the
201 previous mishmash of fd_*() and my_f*() calls into a simpler, better
202 documented interface.  (#137)
203
204 Store stocking is specified in lib/edit/store.txt now, in a reasonably
205 flexible format.
206
207 A fair bit of work has gone into allowing item names to be used in the
208 edit files rather than the tval/sval numbers.  For example, see the
209 new store.txt file; but also the lib/pref/ graphics files, and the
210 starting items in the p_class.txt file, amongst others.  This is a
211 fairly easy thing to do and is a massive massive usability enhancement.
212 It means that invalid item references are caught much sooner, since if
213 an item is removed, all references to its name become invalid.
214
215 Set up an event system for UI display updates, where the game
216 communicates with the UI by sending messages saying that something's
217 changed that the UI might be interested in, rather than deciding that
218 specific things should be redraw.  The main screen updates all use this
219 system now.  Amongst other things, this system should help things like
220 the borg and graphical frontends, because they can hook right into
221 changes in state.  (#348)
222
223 object1.c and object2.c have been split out into a series of files,
224 obj-{desc,make,ui,util}.c.  This makes it much easier to remember what
225 is where.  Also, object_desc() has seen a rewrite, so hopefully it's a
226 lot more hackable now.
227
228 The beginnings of an organised code documentation scheme have started,
229 using doxygen.  Makefile.std provides an easy mechanism to generate docs
230 (try "make docs").
231
232 Other assorted changes:
233  * Remove a whole load of useless or unused configuration options from
234    config.h.
235  * "make -f Makefile.inc depgen" will output "Makefile.new", which then
236    contains up-to-date dependencies for the project.
237  * Add "flags" back to object_type, removing the need for the hacky
238    "xtra" bytes.  This paves the way for e.g. fireproofing scrolls
239    later. (#120)
240  * Makefile for MSVC/NMAKE command-line build.  Currently works with
241    MSVC 6+; flags could use tweaking for MSVC 8+.
242  * Clean up racial and class skill values into arrays.  (Kenneth Boyd)
243  * Use header file guards in all header files, and use a consistent
244    naming scheme for them ("Elly")
245  * Add a very basic test harness for "unit testing" of the game's code,
246    though this is barely used at present.  Thanks to Fennec for cleaning
247    this up a bit.
248  * Introduce the one_in_() notation to the game, for percentile dice.
249  * Move to using randint0() and randint1() for random numbers.
250  * Add proper transparency to the PNG files.  (fixes #270; thanks to Rowan Beentje
251  * Move to using flags[6] for monster flags rather than individual flagsets.
252
Note: See TracBrowser for help on using the browser.