| 6 | | Thanks go to Eytan Zweig, pelpel, and Leon Marrick for patches used in |
|---|
| 7 | | this version. |
|---|
| 8 | | |
|---|
| 9 | | Changes up to now: |
|---|
| 10 | | |
|---|
| 11 | | Bigger |
|---|
| 12 | | ------ |
|---|
| 13 | | |
|---|
| 14 | | * Add Ey-style quickstart. (Eytan Zweig) |
|---|
| 15 | | |
|---|
| 16 | | * Add trap detection indicator. (pelpel) Also, make detection spells |
|---|
| 17 | | circular, of radius 22, and magic mapping circular of radius 30. |
|---|
| 18 | | |
|---|
| 19 | | * Adopted various parts of the OAngband dungeon generation code. |
|---|
| 20 | | (Leon Marrick) For more information, please see: |
|---|
| 21 | | http://dev.rephial.org/trac/attachment/ticket/156/notes.txt |
|---|
| 22 | | |
|---|
| 23 | | * Transient indicators now appear on the bottom line, starting at the |
|---|
| 24 | | left of the dungeon display; things like depth and speed appear on |
|---|
| 25 | | the main sidebar. As a result of this, every timed effect is now |
|---|
| 26 | | displayed on the status bar. |
|---|
| 27 | | |
|---|
| 28 | | Smaller |
|---|
| 29 | | ------- |
|---|
| 30 | | |
|---|
| 31 | | * Monster recall colours changed somewhat, they're now closer to Ey, |
|---|
| 32 | | which I find much more readable. |
|---|
| 33 | | |
|---|
| 34 | | Invisible (or almost so) |
|---|
| 35 | | --------- |
|---|
| 36 | | |
|---|
| | 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 | |
|---|