summaryrefslogtreecommitdiffstats
path: root/stone_soup/crawl-ref/docs/changes.340
diff options
context:
space:
mode:
Diffstat (limited to 'stone_soup/crawl-ref/docs/changes.340')
-rw-r--r--stone_soup/crawl-ref/docs/changes.3401860
1 files changed, 0 insertions, 1860 deletions
diff --git a/stone_soup/crawl-ref/docs/changes.340 b/stone_soup/crawl-ref/docs/changes.340
deleted file mode 100644
index 2891d5c976..0000000000
--- a/stone_soup/crawl-ref/docs/changes.340
+++ /dev/null
@@ -1,1860 +0,0 @@
- Version 3.40 Changelog
-
- Note:
-
- This file documents the progressive development of Crawl 3.40. Much
- of it discusses specific changes to the codebase that may prove
- uninteresting to non-programmers. The devteam has made no great
- effort to clean up our comments.
-
- Do you seek a more accessible overview of the latest changes? Those
- answering "yes" should read the versions.txt entry for Crawl 3.40
- instead.
-
-
-=============
-Contributors:
-=============
-Gordon Lipford (lipford@ca.ibm.com)
-Linley Henzell (linley.henzell@student.adelaide.edu.au)
-Jesse Jones (jesjones@halcyon.com)
-Daniel Ligon (makmorn@qis.net)
-David Loewenstern (loewenstern@home.com)
-Brian Robinson (bcr19374@pegasus.cc.ucf.edu)
-Brent Ross (bwross@csclub.uwaterloo.ca)
-Josh Fishman (fishman@cs.nyu.edu)
-Don Brodale (lar@bway.net)
-
-
-Oct 30, 2000 (Brent Ross)
- -- add macro/function for Control('A') and such.
- -- remove "move[0]" (struct dist)
- -- remove "&beam[0]" (struct bolt)
- -- fixed some problems with elemental resistances
- -- added "easy_confirm" to rc file
- -- improved vampire's spell selection
- -- added merfolk race
- -- added wanderer class
- -- split out the monster speaking function from monstuff.cc
- -- fewer param monam() => ptr_monam()
- -- restore abilities potion gives no message
- -- move monster spells out of mon-util and into mon-spls
- -- added inv_randart_wpn_properties()
- -- fix berserk for mutations and others (paralyze too strong).
- -- make pandemonium gates rarer, special named demon pandemonium levels too
- -- does exp_needed require the species param -- removed
- -- returned Swords as "Orbs of Fire"
- -- returned quokka (added to low level regular dungeon monsters)
- -- easy_open is now an option
- -- added show_uncursed and easy_butcher options.
- -- slight modifications to divine retribution
- -- make weapon classes depend on different stats (USE_NEW_COMBAT_STATS)
- -- added/move startup messages to the new block after initialise()
- -- option to safeguard accidentally auto-removing and dropping armour
- -- added starting message describing chacter race/class
- -- make yesno() take a flag for "safe" cases... and option
- -- fixed the file locking mechanism
- -- moved some SOLARIS defined stuff (which really isn't Solaris dependant)
- to MULTIUSER.
- -- write player_title() as interface to skill_title() which will do the
- best calculating and call skill_title (which is still needed for ghosts)
- -- fixed bug: runes were being generated in the hive
- -- fixed bug: examined clouds wrongly identified
- -- added Simulacrum spell (creating a new Ice spell... I'm surprised
- that Ice/Necromancy aren't very closely related... this will help
- fix that).
- -- added Ball Lightning spell (replacing Electric Orb).
- -- fixed best_skill to use skill_points and species difficulty, instead
- of just the base level (which gave preference based on the order of
- the skills... this will only have that happen if the skill points
- are also equal, which is much less likely).
- -- adjustments to the spellbooks, and spellbook aquirement
- -- Warp adjustments
- - removed bend, warp/distortion brand from play
-
- - warp brand was raised in level and the miscast effects were
- added to the spell start and end (to limit the spell should it
- ever be brought back).
-
- - translocations also doesn't help with the miscast effects of
- distortion brands (it was reducing the terror wielding one, and
- these weapons easily outclass other brands for bonus damage and
- powerful effects... they should never be anywhere near usable
- as a reliable swap weapon, player's should have to seriously think
- before deciding to use one... and have to risk some real damage
- or banishment if they use them frequently).
-
- - reduced frequency of summoning "spatial vortices" as a miscast
- effect -- people were reliably getting them by dropping warp
- branded weapons (and it's random movement makes it much less
- a threat to the player, who will sit back and watch it mow down
- the other monsters in the room (who won't see it as a threat))
-
- - added Far Stike as a level one spell (the other spells were very
- overpowered (distortion weapons are gross and dangerous, using
- that code as "balanced" is wrong unless you're bringing over the
- danger as well... all three of warp attacks were also range 1, which
- is silly for Warpers, who should be world-class plinkers, not close
- combat munchkins). It's a much limited spell that allows the player
- to "hit" a monster in LOS (yes, that means like striking/airstrike
- so it's not really another magic missle) with their weapon
- (limits being: no magical special effects, no enchantment bonus,
- slow to cast (weapon swing is part of it, but it's also a spell
- so it will never take less than 10), max damage limited by
- translocation skill and weapon, with strength bonus/penalty
- applied, can be resisted (maybe change this to evaded?)). This
- should probably be the only translocation combat spell... let them
- go elsewhere for strong offensive.
-
- - made it so that blink will at least teleport the player to a square
- two squares away (makes blink a bit more usable, because it removes
- the annoying "I could have walked here" feelings).
-
- - added Swap, which allows the player to swap places with an
- adjacent monster. Isn't really that abusable as it uses the
- same swap code that's used for friendly monsters and that
- doesn't currently have insta-kill potential... that can be
- fixed later, but right now I'm calling it a "feature". Should
- it be fixed, this spell could be changes to give a higher resist
- and in insta-kill situations the monster could be allowed to
- "scatter" to any of the immediate surrounding squares as a
- save against death (player could get this too).
-
- - added Apportation, a simple utility spell that will move light
- objects to the player
-
- - added Evocation a high level teleport surrounding monsters
- away spell (even if resisted the monster still might be blinked)
-
- -- fixed BUG: nagas gaining breathe fire mutation (twice in this case) seem
- to lose the spit poison ability
-
- -- made it so that MULTIUSER will look for ~/.crawlrc (Un*x-type standard)
- -- pain, disrupt, far strike do a minimum of 1pt of damage to make up
- for the monsters saving throw (that 1pt is only really good early
- on when the character can use it to help stay alive, later on it
- means almost nothing... so it helps out begining characters, and
- makes the fact that the spell is going to be resisted fairly often
- at those levels a little less painful).
- -- made sure stabbing had a point of starting damage (it's silly to apply
- multipliers to zero or negative damage).
- -- returned "Toxins" to "Envenomations"
- -- spider form now makes spell casting slightly more difficult.
- -- changes "book of Assassinations" to "book of Stalking" (less confusing)
- -- fix for "buggy helmets"... normal helmets with item_dam == 0 were not
- being handled in the code (before they defaulted to nothing)... might
- still exist, but should be rarer (there is a chance that the high
- values of item_dam also occur).
- -- fix for "buggy potions"... potions ids were being generated in a wider
- range than there was descriptive words.
- -- lowered the magic resistance of the really low level monster to allow
- first level characters to deal with them better.
- -- enums for item_descriptions
- -- enums for monster bands
- -- added enums for monster spell templates (still need to be applied)
- -- fixed enchant_monster() so that slow and haste will work through it.
- -- changed player_fast_run() into player_movement_speed() and got rid
- of ATTR_WALK_SLOWLY as well... player_movement_speed() returns the
- movement rate so it's no longer "have running == 6".
- -- modified swap_monsters to handle habitats.
- -- tweaked failure rate for Trog Haste (which was in with the other haste
- and using Invocations).
- -- power level caps for spells (checks for most spells to verify that
- the effect is limited in some way as protection against potential
- extremely high power casting). Adjustments to spell damages/to-hit
- to work with the lower caps (that the play will run up against).
- -- added wizard command for filling up skill experience pool
-
- 29.july.2000 (Jesse Jones)
-
- * Changed NUM_SPELL_TYPES to 14 (from 32767!).
- * Misc very minor CodeWarrior tweaks.
- * Moved the source files into a new "Source" directory.
- * Switched to using bounds checked array classes for most arrays.
- * Fixed several places that were indexing past the end of arrays.
- * Renamed environ::sh_x, sh_y, sh_greed, sh_type, and sh_level so they start with shop.
- * Renamed MNG NON_MONSTER, MNST MAX_MONSTERS, ITEMS MAX_ITEMS, ING NON_ITEM,
- CLOUDS MAX_CLOUDS, CNG EMPTY_CLOUD, and NTRAPS MAX_TRAPS.
- * Fixed end_game so that it works with filenames longer than 6 characters.
- * Disabled USE_WARPER_BETTER_WEAPON.
- * Fixed misspelled "jewelry".
- * Removed SPELL_SWARM from the Book of Summonings.
- * Added Josh's "pick appropriate conjuration spellbook" code.
- * Added Gordon's Manticore fix.
- * Added the lnchType fix to the monster throw code.
- * Added Gordon's revised title changes.
-
-28.july.2000 (Gordon Lipford)
-
- all changes are GPL'd by Gordon Lipford (c) 2000
- in the event that the original Crawl license is found to be non-GPL,
- special permission to use the changes with Crawl is hereby granted.
-
- Bug Fixes:
- * Manticores will now use their spikes. They weren't being given any
- inventory in place_monster(), and then the throwing routine checked
- for inventory before letting them throw..
- * Player::level_change(): fixed up hit point penalty for halfings and
- gnomes (incomplete coding of HP adjustment). Rewrote hp and mp gained
- due to level so that it couldn't happen again.
- * item_use::wield_weapon(): smoothed out Translocator 'save' vs distortion
- effects when wielding/unwielding.
- * smoothed out hp bonus for fighting skill (in integer math, always
- divide _last_).
- * enchant weapon scrolls will affect missiles now (no branding though),
- if they aren't already heavily enchanted - same as weapons.
-
- Changes:
- * Completely reworked throwing for players _and_ monsters. Monsters are
- not nearly as good as players for the most part, but can still be
- rather scary. Hit Dice are (approximately) substituted for player skill,
- and monsters of high intelligence are much better shots now.
- - targeting any missile weapon benefits from high dex and throwing skill.
- In fact, effective bow/xbow/sling skill is limited to twice one's
- throwing. A warning is given on the skills screen if this limit is
- hampering the player.
- - darts, slings, and crossbows are easy to use. Bows and thrown weapons
- are harder, but bows improve a _lot_ with skill.
- - thrown weapons generally suck, but not horribly badly - they're still
- useful in a pinch if you have decent strength and throwing skill.
- - Strength has a different effect on the damage done from missiles:
- - Slings and bows benefit from strength, up to a point determined by
- the launcher's magical damage bonus. The launcher damage bonus is
- _not_ added into the damage calculation.
- - Thrown weapons benefit directly from strength, albeit at a lower rate.
- - Crossbows do not benefit from strength at all.
- - Crossbows benefit directly from magical launcher damage bonuses.
-
- * changed some of the class titles
- * updated display_mutations() so that more than 20 mutations will
- cause a -more- prompt and screen clear.
-
-28.july.2000 (Michal Valvoda)
-
- Changes in mutations::void display_mutations(void)
- - added innate abilities and weirdness to "Mutations & Other weirdness"
- screen and renamed it to "Innate abilities, weirdness & mutations".
- Innate abilities are colored LIGHTBLUE
-
-
-22.july.2000 (Josh Fishman)
-
- all changes are GPL'd by Josh Fishman (c) 2000
- in the event that the original Crawl license is found to be non-GPL,
- special permission to use the changes with Crawl is hereby granted.
-
- * AppHdr.h:
- added #defines:
-
- USE_SKILL_POOL_DRAIN
- - comment out to remove LRH's old skill-pool drain code, which makes the
- xp-pool drain faster when it is very full
-
- USE_WARPER_BETTER_WEAPON
- USE_WARPER_SPELL_BEND
- - start warpers with a {dagger/quarterstaff} of Distortion, or with the
- spell Bend, depending on which is commented out. the former is
- particularly evil for ogre-mages, since their default weapon can't dissect.
-
- * abl-show.cc:
- - Changed some `you breathe foo's to `you exhale foo's.
-
- Made transformation, species & mutation breath weapons mutually exclusive
- (so a naga with the `breathe flame' mutation can't spit poison). THIS IS
- NOT TOTALLY DONE, but somewhat better than before.
-
- + Added failure probabilities for some (not yet used) Invocations.
-
- * beam.cc:
-
- + Added BEAM_LAVA for player spell Bolt of Magma
- + N.B.: in some places hellfire and lava were conflated; I tried to
- separate them, but may have introduced bugs.
-
-
- * describe.cc:
-
- + Many changes to monster descriptions.
- + Chunk-of-flesh description now depends on your race, but not enough.
- For example, carnivores ought to like non-rotten meat.
- + Spell descriptions:
- - added Bolt of Magma
- - changed Freeze, Sleep and Mass Sleep to reflect new `Slow Snakes' code
- - Shadow Creatures has old description, to reflect its school
- - Summon Large Mammal -> Call Canine Familiar
- + Some changes to god descriptions
-
-
- * dungeon.cc:
-
- + Fixed "Entering..." bug (line 7215 or so)
-
-
- * it_use2.cc:
-
- + Added ZAP_MAGMA (for Bolt of Magma)
- + Fixed POT_MIGHT effect
-
-
- * it_use3.cc:
-
- + Fixed staff_spell() (wasn't letting player pick first spell sometimes).
- + STAFF_SMITING no longer gives you a one-choice menu, it just does it.
- + Non-Spell Staves no longer say "This staff has no spells in it." when
- (I)nvoked, they say "Nothing appears to happen.".
- + Less abusive message for putting on non-jewellery (with free spelling
- error!)
- + Jewellery messages now feature "put on" in some places where "wear" was.
-
- * mon-data.h:
-
- + Added flags M_COLD_BLOOD and M_WARM_BLOOD where IMO appropriate.
-
-
- * mon-pick.cc:
-
- + Removed MONS_RAKSHASA_FAKE from generateable monster lists.
- + Added Wargs, Wolves and Bears to generateable monster lists.
- - Wargs in Orc Mines
- - Wolves & Bears in the Lair
- + Moved mon_entry[] from within function to outside; made init code
- into its own function.
-
-
- * monstuff.cc:
-
- + Monster wounds messages: mon HPs left: was 1/4-1/3 => "horribly", now 1/6-1/3
- + (Glowing) Shapeshifters are no longer allowed to use Mage and Priest
- special powers, but still get their shape's physical abilities. So a
- shapeshifter in the form of an orc priest can't smite you, but one in
- dragon form could breathe fire.
- + Some spelling & grammar fixes to mon_speaks; MUCH MORE WORK NEEDED HERE!
-
-
- * newgame.cc:
-
- + Implemented USE_WARPER_BETTER_WEAPON and USE_WARPER_SPELL_BEND
-
- + Stalkers:
- - skills: no more THROWING or DARTS, now SPELLCASTING and ENCHANTMENTS
- - book: Book of Assassination
- + Draconians:
- - No longer allowed to be Enchanters -- they so suck at Enchantments
- - ... but now allowed to be Transmuters, since they're good at Transmigrations
- + Kobolds now allowed to be Death Knights.
- + Halflings now allowed to be Crusaders.
- + Removed strange random 1st level spell code -- now always give players the
- 1st spell in their spell-books.
-
-
- * player.cc:
-
- + Players transformed into Dragons and Air now protected from poison
- (as monsters of those types are immune).
- + Players transformed into Air no longer get air-magic boost, but still do
- get earth-magic penalty.
- + Centaurs and Spriggans don't lose their fast-running w/ BLADE_HANDS any more.
-
-
- * religion.cc:
-
- + simple_god_message() simplified
- + Reduced number of colors in god_speaks().
- + Changed some gain/lose piety messages to reflect what power was gained/lost.
- + Changed penence messages to reflect that gods don't summon, they send.
-
-
- * skills.cc:
-
- + Sludge Elves now bad at Enchantments, good at Transmigrations, worse
- at all forms of Elemental Magic (was experimental, not sure if it
- was discussed on crawl-dev). FIXME: change back?
-
-
- * spell.cc:
-
- + Added SPELL_BOLT_OF_MAGMA.
- + Spell type code now uses bitfields.
-
-
- * spells.cc:
-
- + Spell type code now uses bitfields.
-
-
- * spells2.cc:
-
- + Weapon branding code now works (brand_weapon()).
- - er, except for what may be a bug at the end: `power << 1' => `power * 2'
- + Ozocubu's Refrigeration and Freeze can now slow cold-blooded creatures.
- + summon_things now correctly pluralizes.
-
-
- * spells4.cc:
-
- + Added case TRAN_AIR to your_hand().
- + apply_area_one_neighboring_square() no longer gives unlimited trys.
- + cast_summon_large_mammal() no longer generates hogs or sheep, now just
- Jackals, Hounds and War Dogs.
- + cast_sticks_to_snakes() gives MONS_SNAKE for low-level large object snakes
- (as opposed to MONS_BROWN_SNAKEs).
- + sleep_monsters() is now only called from hibernation-spells:
- - Now cold resistance negates.
- - `Slow Snakes' (cold blood => may be slowed as well as put to sleep)
- + Fragmentation & Shatter:
- - Statues and magic traps no longer destroyed
- + Shuggoth Seeds: seed now requires MH_NORMAL, warm-blooded host
-
-
- * spl-book.cc:
-
- + Books of Minor Magic changed, hopefully for the better!
- - BoMM-II man still need some help; Ozocubu's Armour replacement?
- + Book of Flames loses BOLT_OF_FIRE, gains BOLT_OF_MAGMA
- + Book of Frost gains SLEEP, loses FREEZING_CLOUD
- + Book of Ice gets MASS_SLEEP and FREEZING_CLOUD
- + Changes to Enchantment books
- + New Book of Assassination
- + spellbook_template() copying loop used to count from 1 to SPELLBOOK_SIZE,
- I made it count from 0 (to fix the "can't-get-to-first-spell-in-staff" bug).
-
-
- * spl-data.h:
-
- + Spell structure now has one field for "level" (instead of 3 identical ones).
- + Spell schools are now encoded as bits in an unsigned int instead of in a
- special structure.
- + Some spells moved back to their old schools (from my (bad) recent changes).
-
-
- * spl-util.h & spl-util.cc:
-
- + Changes to use new, simple spell structure.
-
-
- * view.cc:
-
- + Removed "if (do_updates) mpr("Stealth checks...");" from DEBUG builds
- (it's too annoying).
- + Enum'd monster noises.
-
-
-21.jun.2000 (Michal Valvoda)
- Changes:
- monstuff.cc
- - completely reworked mons_speak routine
- - removed silence check required to call mons_speak (line 749)
- - lowered chance to speak to one_chance_in (7) (line 749)
- describe.cc
- - added many new monster descriptions (deep elves, unique monsters
- like Sigmund, Terence etc., killer bee larva ...)
- - changed some existing descriptions - made them more detailed
- - in case of some "smell" message add MUMMY check
-
-
-19.jun.2000 (Gordon Lipford)
- Changes:
-
- * replaced old losight() function with new one. It doesn't quite
- match the old one, but it's close enough.
- * externalized setLOSRadius() and added normal_vision and current_vision
- fields to the player structure. We have variable light sources, voila!
-
- - Note that using a radius of 0 screws up map memory and looks really dumb.
- I am not going to try to fix this.
- - In a similar vein, bumping into something should draw it on the map
- if you didn't know it was there already (ie you fumble blindly into a
- wall). I'm not going to do this either. :)
-
- * changed all level 1 'handle' references to level 2 'FILE *' for better
- portability. Whenever a function needs a File Descriptor, I have
- substituted fileno(handle) for just 'handle'.
- * added Windows 32 bit Console support. Screen redraws, loading, saving,
- and highscore updates are now VERY fast on Windows machines, even playing
- from a shared network drive. The NT DOS VDM, at least, was !@$#* crap.
-
-
-17.mar.2000 [Josh Fishman]
-
- Bug Fixes:
-
- * ability.cc: ABIL_BREATHE_FIRE gained power if player had MUT_SPIT_POISON
- -- changed to bonus if player has MUT_BREATHE_FIRE
- * beam.cc: poison_monster: fixed so TSO only gets pissed if it's YOUR
- poison (my broken code had him angry if ANY poisoning occured)
- * spells.cc: changed many miscast messages to passive "You are caught in"
- (rather than "You conjure up") because miscast_effect is called for all
- sorts of stuff (particularly divine punishments).
-
-
- Structural Changes:
-
- * moved much spellbook code to new file, spellbook.cc
- * removed a host of DUR_<BRAND_TYPE> entries; replaced with
- DUR_WEAPON_BRAND
- * cast_selective_amnesia(bool): was (void); bool used to determine if
- failure (and memory loss) is allowed. Sif Muna's invocation guarentees
- success.
-
- New Functions:
-
- * Confined to spells4.cc
-
-
-17.03.2000 [Don Brodale]
-
- BugFixes:
-
- * damage taken by player (misc.cc) for CLOUD_MIASMA was wrong --
- operator precedence at fault;
- * SPWPN_FROST changed to RING_SUSTAIN_ABILITIES in
- player::player_sust_abil() for EQ_LEFT_RING conditional (noted by
- Jukka);
- * misc::itrap() MI_AXE -> WPN_HAND_AXE and mstuff2::mons_trap()
- MI_SPEAR -> WPN_SPEAR, MI_AXE -> WPN_HAND_AXE to fix inappropriate
- item generation (noted by Brent);
- * newgame::new_game() stairs to Hall of Blades now
- "you.branch_stairs[STAIRS_VAULT] + 4" not
- "you.branch_stairs[STAIRS_CRYPT] + 4" to fix overmap inconsistency
- described by Jukko and confirmed by Linley;
- * dungeon::items() recoded to fix generation of skill manuals of
- SK_GREAT_SWORDS but not of SK_POISON_MAGIC and SK_INVOCATIONS
- (noted by Brent);
- * MS_STING was cased in mstuff2 to be BEAM_FIRE causing it to set
- scrolls afire (noted by <kathomps@julian.uwo.ca>) -- changed to
- BEAM_POISON, as it should have been all along;
- * CMD_LIST_WEAPONS in acr::input() '(' -> ')' (noted by Brent);
- * CMD_LIST_WEAPONS in liblinux::init_key_to_command() '(' -> ')' to
- match above change; and
- * half a bugfix: in food::eat_meat() Amulet of the Gourmand no
- longer renders contaminated or poisonous flesh clean -- now have
- to apply the other half enabling eating of rotten food as though
- it were [presumably] underlying corpse effect type.
-
- Structural Alterations:
-
- * commented many many of the header files -- need to comment and
- check rest, but can we keep these up to date, please?;
- * cleared out all tabs (some 500+ of them);
- * *massive* checking of function declarations in most of the source
- files and resulting clean-up of #includes and *.cc versus *.h
- declaration -- too many to list here, if anyone wants to see it,
- let me know;
- * #ifdef/#defn protection added to overmap.h, preventing multiple
- inclusions;
- * version.h -- BUILD_DATE advanced to "17 mar 2000" and VERSION
- changed to "3.40pr30";
- * standardized ordering of #includes atop files, alphabetized last
- set of #includes within each file, removed of duplicate entries
- where found;
- * duplicate #includes for message.h removed from files already
- #include-ing externs.h (which in turn #includes message.h);
- * removed setting you.redraw_hunger to 1 immediately prior or after
- calls to food::food_change(), as the function sets this value
- itself; and
- * replaced (here and there) the sum of "n calls to random2(a)" with
- "random2avg( (n*(a-1))+1, n )" -- for low values of n,
- distribution of returned value is analogous and this approach
- offers option to tweak distribution of value returned, too.
-
- New Functions:
-
- * food::can_ingest() added and inserted where appropriate -- option
- to suppress message included in case we want to tie routine to
- inventory list command to display whether something is edible by
- player.
-
- Changes to Existing Functions:
-
- * message added for change in burden state *to* unencumbered --
- don't know why there wasn't one in the first place, but actual
- message may require tweaking
- * acr.cc variable newc changed from type int to char to match value
- returned from newgame::new_game()
- * monplace::create_monster() automatic variable "int pets" removed
- -- didn't do anything except sit there and retain zero valuation
- * effects::lose_stat() recoded to use STAT_RANDOM (see below)
- * food::food_change() coding simplified as it was really far more
- complex than it had to be and confused, to boot
- * food::is_carnivore() removed -- replaced by food::can_ingest()
- (see above)
- * food::eat_from_floor() automatic variable "int gloggj" removed,
- all it held was returned value of eating(), but was never used
- * mutation.cc redundant codings replaced with calls to
- player::increase_stats() -- look for the comments: nulled-out
- gain/loss message strings for mutations affected by change
- * spells0::undead_can_memorize() -> undead_cannot_memorize() and
- recoded for more reasonable usage, to permit restriction of
- certain spells solely to the dead, and to allow the 'true' undead
- to use spells that the 'hungry' dead cannot (not possible before),
- etc.
- * view::losight() variables see, see_section, and behind are now
- bool and not (int / short int / char) -- some clean-up called for
- but I wasn't up for it
- * barehand_butcher added to food::butchery() to clarify coding
- * spells1::cast_fire_storm() variable summd its association with
- monster_place() removed
- * player::how_hungered() recoded so as to avoid need for goto:
- statement -- the accursed goto
- * standardized (to some extent) the way in which mons_lev.cc f(x)'s
- are coded
- * mutation::perma_mutate() rewritten for clarity, taking advantage
- of left-right evaluation of && conjoined conditionals
- * effects::recharge_wand() clean-up / clarified
- * spells1::cast_revivification() clarified a little bit
- * monstuff:mons_in_cloud() cleaned-up, optimized, and enumerated --
- no longer relies on (env.cloud_type[cl] % 100)
- * view::cloud_grid() cleaned-up
- * ouch::lose_level() lost some code that simply called random2() to
- no particular end
- * mons_lev::mons_level_abyss() -> mons_lev::mons_abyss(), to be more
- in line with mons_pan() as both simply check whether a monster
- "belongs"
- * functions that now return bool instead of char:
- + effects::forget_spell();
- + effects::lose_stat();
- + effects::recharge_wand();
- + fight::monsters_fight();
- + food::butchery();
- + food::eat_from_floor();
- + misc::scramble();
- + mons_lev::mons_level_abyss();
- + monstuff::curse_an_item();
- + monstuff::mons_speaks();
- + mstruct::mons_pan();
- + mutation::delete_mutation();
- + mutation::give_bad_mutation();
- + mutation::give_good_mutation();
- + mutation::mutation();
- + mutation::perma_mutate();
- + player::you_resist_magic();
- + transfor::can_equip();
- + transfor::transform(); and
- + monplace::empty_surrounds().
- * functions that now return bool instead of int:
- + transfor::remove_equipment();
- + monstuff::wounded_damaged() -- this may have to change if we
- add more types of monster hurt than wounded and damaged;
- + dungeon::treasure_area(); and
- + view::check_awaken().
- * functions that now return unsigned char instead of int:
- + player::player_energy();
- + player::player_fast_run();
- + player::player_spec_air();
- + player::player_spec_cold();
- + player::player_spec_conj();
- + player::player_spec_death();
- + player::player_spec_earth();
- + player::player_spec_ench();
- + player::player_spec_fire();
- + player::player_spec_holy();
- + player::player_spec_poison();
- + player::player_spec_summ(); and
- + player::player_sust_abil().
- * spells2::burn_freeze() now returns char instead of int;
- * dungeon::place_monster() parameter "char allow_bands" changed to
- "bool allow_bands" to clarify how this parameter is, in fact,
- used;
- * dungeon::place_monster() parameter "int type_place"
- changed/renamed to "bool is_summoning" to clarify how this
- parameter is, in fact, used;
- * dungeon::spotty_level() takes bool instead of char for first and
- third parameters (seeded and boxy);
- * food::eating() returns void instead of int -- always returned 0
- and the returned value never used elsewhere;
- * food::ghoul_eat_flesh() takes bool instead of char for only
- parameter;
- * item_use::wield_weapon() takes bool instead of char for only
- parameter;
- * misc::dart_trap() takes bool instead of int for first parameter;
- * misc::down_stairs() takes bool instead of char for first
- parameter;
- * misc::fall_into_a_pool() takes bool instead of char for first
- parameter;
- * misc::handle_traps() takes bool instead of char for third
- parameter;
- * monplace::empty_surrounds() takes bool instead of char for fourth
- parameter;
- * monplace::mons_place() parameter "int type_place" changed/renamed
- to "bool is_summoning" to clarify how this parameter is, in fact,
- used;
- * mstuff2::monster_abjuration() takes bool instead of char for
- second parameter;
- * mstuff2:monster_teleport() takes bool instead of char for second
- parameter;
- * player::increase_stats() takes unsigned char instead of char for
- only parameter, extended to handle random stat boost;
- * spells1::ice_armour() takes bool instead of char for second
- parameter; and
- * spells3::dancing_weapon() takes bool instead of char for second
- parameter.
-
- Enumerations and Defines:
-
- * MONS_MOLLUSC_LORD (255) added to enum MONSTERS -- deprecated but
- still referenced;
- * NUM_WANDS added;
- * STAT_RANDOM and NUM_STATS added;
- * NUM_DURATIONS added and kept at 30 (rather than true value)
- because setting it lower (I think) would cause savefile
- compatibility problems -- not fully useful unless we wish to break
- savefile compatibility;
- * MI_AXE (9) and MI_SPEAR (11) removed from enum MISSILES (see
- above);
- * enum MAP_SECTIONS added for dungeon.cc / maps.cc interaction --
- not fond of how maps are applied, so this may be temporary;
- * enum MONSTER_CATEGORIES and mstruct::monster_category() added to
- clarify certain conditional tests and keep comparison on
- MONS_foobar to equality or inequality for ranges -- this will be
- expanded and attached to similar entries in m_list.h (I ran outta
- time!);
- * enum CORPSE_EFFECTS added -- members mimic C_foo #defines and add
- a few new ones and another for rotting [see food::eat_meat()] --
- again, I ran outta time to extend application;
- * misc::in_a_cloud() fully enumerated out, no longer relies on
- switch (env.cloud_type[cl] % 100); and
- * much more general enumeration across codebase.
-
-
-06.03.2000 [Brent Ross]
-
- * removed strength loss from berserk penalty (acr.cc);
- * added Trog code to berserk (fight.cc, acr.cc);
- * reverted Berserkers and Paladins to their original weapons/skills
- -- actually, Paladins changed to sabres on Linley's suggestion
- (newgame.cc);
- * removed learning from stave combat (fight.cc);
- * made vorpal weapons less common, other egos more common?
- (dungeon.cc);
- * changes to makefile.sol;
- * increased armour penalty for spellcasting, lowered the reduction
- to penalty for armour skill (spells0.cc);
- * armour changes: elven armour is better for spellcasting, dwarven
- armour for AC from skill -- for everyone (player.cc, spells0.cc);
- * paralysis leaves player easier to hit (player.cc);
- * reduced Xom's prayer reponse rate (religion.cc);
- * added penance and gift timeouts for gods (files.cc, extern.h,
- religion.cc, newgame.cc, ability.cc):
- + divine_retribution() (religion.cc, decks.cc, spells.cc); and
- + added god_speaks() so that the other gods can use colourful
- text.
- * indented code;
- * improved the demonspawn AC mutations by boosting the number of
- levels for the lower ones;
- * extended spellbooks to 8 spells maximum ... restored levitation to
- Air, removed "Summon Elemental" from Ice (their "elemental" is
- really an Ice Beast, not benefitting from summoning Water
- Elementals); and
- * added Confusing Touch as a first level spell for enchanters and
- Sure Blade as a second level spell -- removed wand and gave them
- some enchanted darts.
-
-
-23.02.2000 [Don Brodale]
-
- BugFixes:
-
- * implemented Linley-suggested bugfix in misc.cc:down_stairs() to
- fix "Abyss bug" that was actually a/the "Pandemonium bug";
- * copied over new makefile.sol posted by bwross;
- * typo in dungeon.cc limited weapon given to elven mage-types to
- whips and sabres *only*;
- * item descriptions added to itemname.cc for BOOK_PARTY_TRICKS and
- BOOK_CANTRIPS (jmf/bcr forgot to do so?);
- * spells2::summon_elemental() would create sleeping elementals when
- summoned hostile to spellcaster; and
- * spells2::summon_things() -- apparent reversal of
- MONS_ABOMINATION_SMALL and MONS_ABOMINATION_LARGE [jdf flagged it
- first] fixed by correcting improper enumeration (see below).
-
- Gameplay Changes:
-
- * stalkers, assassins, and venom mages begin the game with knowlege
- of Poison Potions (c.f., Paladins/Healers possessing knowledge of
- Healing Potions).
-
- Structural Alterations:
-
- * externs.h now #includes enum.h -- already de facto standard, now
- openly the case;
- * moved files not directly related to current build into subfolder
- labeled "misc";
- * moved files removed from or "left behind" by the current build
- into subfolder labeled "unused";
- * proper #includes for decks.cc now in place;
- * redundant #include defines.h in invent.cc and mstruct.cc removed,
- already #include'd by externs.h;
- * changed some formulas resembling "menv[bk].type =
- MONS_ABOMINATION_SMALL + (random2(2)) * 26;" to conditional on
- coinflip(); and
- * flipped many conditional clause orderings to place function calls
- last to take advantage of short-circuit logic.
-
- New Functions:
-
- * stuff::coin_flip() to replace random2() when desired result is
- simply true or false -- does not use rand() or random() for return
- value, getting around "iffy" rand() implementations for low order
- bits (from *Numerical Recipies in C*);
- * stuff::one_chance_in() to clarify conditionals like ".. &&
- random2(foo) == 0 .." -- !one_chance_in() more intuitive than
- !random2(), too;
- * stuff::stepdown_value() to replace [and generalize] repeated
- conditional chains in spells2.cc;
- * stuff::table_lookup() to randomly return a value from an unbounded
- value list and associated probabilities; and
- * food::is_carnivore() to handle set conditional evaluation in
- food.cc and itemuse.cc.
-
- Changes to Existing Functions:
-
- * item_name::initial() -> item_name::clear_ids() to clarify what
- task this function performs;
- * extended random22() to accept any number of 'dice' for averaging,
- renamed to random2avg();
- * extended random40() to accept any limit, renamed random2limit();
- * "fixed" item_use::drink_fountain();
- * "fixed" spells2::cast_twisted() a bit -- needs more fixing still;
- * nested [in place of stacked] strings of conditional statements in
- player::you_resist_magic(), beam::check_monster_magres(),
- skills2::clac_ep() to eliminate needless value checking;
- * changed create_monster() call in spells2::summon_butter() to
- duration 22 [from 21] to match other summoning spells;
- * altered staff description routine in describe.cc to prepend "This
- staff";
- * dungeon::box_room() optimized for efficiency -- lopsided odds for
- placement of one (and only one) additional door reflects original
- algorithm [I cannot explain why it should be this way];
- * dungeon::city_level() clarified and optimized;
- * dungeon::place_shops() optimized a bit;
- * dungeon::plan_4() optimized a bit -- removed variable boxy_type,
- as it was useless;
- * dungeon::prepare_swamp() optimized slightly;
- * dungeon::generate_abyss() logic clarified;
- * it_use2::zappy() -- changed func_pass[5] for ZAP_ICE_STORM to
- BEAM_ICE (23) from BEAM_COLD (3) in accordance with comment and
- spell description;
- * shopping::shop_getch() removed entirely and replaced by
- stuff:get_ch() -- differed only in that the former returned char
- and the latter unsigned char [variable ft in shopping::in_a_shop()
- changed to unsigned char as a result];
- * spell::surge_power() -- replaced successive tests with one complex
- conditional to reduce number of tests required;
- * spells2::summon_swarm() cleaned-up to make creature selection
- clearer; added giant mosquito; red wasp -> wolf spider
- [reversion]; killer bee larvae -> scorpion [as commented];
- * spells2::summon_undead() cleaned-up by replacing successive
- conditional calls to rand2() with one switch call to rand2() per
- loop-through -- if odds look funny, it represents evaluation of
- original coding;
- * removed double assignment of numsc from spells2.cc:summon_swarm()
- and spells2.cc:summon_undead();
- * newgame::class_allowed() cases now uniformly list >disallowed<
- species for all classes [except hunter];
- * newgame.cc:init_player() -- eliminated redundant you.level_type
- initialization, general clean-up;
- * recoded describe::describe_potion() and describe::describe_food()
- to handle redundant wordings -- more cases involved, but fewer
- textual chunks duplicated;
- * functions that now return bool instead of int:
- dungeon::place_specific_trap(), fight::jelly_divide(),
- spells::which_spellbook(), and spells0::spell_type();
- * functions that now return bool instead of char:
- item_use::drink_fountain(), monstuff::random_near_space(),
- player::wearing_amulet(), spells::learn_a_spell(),
- misc::go_berserk(), spells2::brand_weapon(), and stuff::see_grd();
- * invent::invent() is now takes bool instead of char for second
- parameter;
- * overmap::print_level_name() now returns bool and takes bool as
- third parameter, which also means that already_printed is now type
- bool, too;
- * player::player_see_invis() now returns unsigned char instead of
- int; and
- * spells3::you_teleport2() now takes bool instead of char.
-
- Changes to Variables:
-
- * nulled out Great Swords array entries in skills2.cc -- no longer
- used;
- * uncommented the last four entries to the skills[][] array and
- deleted the fourth -- entries now match size of array as declared
- elsewhere;
- * converted some integer constants (foo = 59) to single-quoted
- characters (foo = ';') where appropriate; and
- * int item_sacr in religion::altar_prayer() deleted, as it was
- unused;
-
- Changes to In-Game Messages and Textual Elements:
-
- * VERSION set to "3.40pr" so people know this is not the final
- release;
- * BUILD_DATE set to "23 Feb 2000" -- I think we should use month
- abbreviation to avoid numerical confusion;
- * minor tweaking of messages relating to undead players;
- * special statue transformation message for gnomes added;
- * grammatical clean-up and rewording of all spell descriptions in
- describe.cc -- all checked, some changed a little;
- * "book of Useful Magic" -> "book of Practical Magic";
- * "book of Poisonings" -> "Young Poisoner's Handbook" (movie
- reference);
- * "book of Envenomations" -> "book of Toxins";
- * "book of Storms and Fire" -> "book of the Tempests";
- * "Anita" ->"Snorg" within its m_list.h entry;
- * "Sneaker" -> "Sneak" for stealthy types (did one become an old
- tennis shoe?);
- * "Assassin" -> "Blackguard" for stabbing to avoid confusion with
- character class;
- * "Thief" -> "Covert" for stealthy types to avoid confusion with
- character class;
- * "Axe Maniac" -> "Halberdier" for polearms -- category includes
- more than axes, so this is a better fit and avoids repetition of
- another "top level" skill name;
- * "Bombardier" -> "Flinger" for slings, as it is more descriptive of
- a slinger's actions;
- * "Crazy Person" -> "Whirler" and "Really Crazy Person" -> "Crazy
- Person" for slings -- the joke still remains, but some dignity is
- restored to slingers everywhere; and
- * "Igniter" -> "Firebug" and "Burner" -> "Arsonist" for Fire Magic.
-
- Enumerations and Defines:
-
- * COLORS #define applied to numerical values still present in
- m_list.h;
- * COLOR #defines applied to it_use2::zappy() for ZAPs not switched
- over from value numbers;
- * COLOR #defines applied to remaining codebase, where I could find
- references still using numerical values -- I think I overdid it a
- bit and need to go back and fix a particular set of replacements;
- * #define NO_MUT (in mutations.cc) replaced by last member in
- MUTATIONS: NUM_MUTATIONS;
- * #define NO_EQUIP replaced by last member in EQUIPMENT enum:
- NUM_EQUIP;
- * removed #defines (and references to them) for Tome of Destruction
- and Manuals in dungeon.cc -- superceded by BOOKS;
- * replaced 501 with ING where appropriate -- only scattered
- instances of bare 501's left in the source code;
- * MLAVAfoo and MWATERbar #defines restricted to use only in certain
- header files [m_list.h monsstat.h newmonst.h], with the exception
- of MLAVA4 used in monstuff.cc (what is it?) -- I'll clean these up
- later, but other than this, they are no longer used in the
- remainder of the codebase;
- * CLOUD_ENERGY -> CLOUD_PURP_SMOKE;
- * CLOUD_STICKY_FLAME -> CLOUD_BLACK_SMOKE;
- * MONS_SMALL_ABOMINATION -> MONS_ABOMINATION_LARGE and
- MONS_LARGE_ABOMINATION -> MONS_ABOMINATION_SMALL -- mistakenly
- reversed in enum sometime before;
- * MONS_ANITA -> MONS_SNORG -- regenerates and described as being a
- hairy troll, so must be Snorg;
- * MONS_FAKE_RAKSHASA -> MONS_RAKSHASA_FAKE;
- * MONS_SMALL_ZOMBIE -> MONS_ZOMBIE_SMALL;
- * MONS_BIG_ZOMBIE -> MONS_ZOMBIE_LARGE;
- * MS_SUMMON_LESSER_DEMON -> MS_SUMMON_DEMON_LESSER -- I like
- hierarchies;
- * MS_SUMMON_DEMON_1 -> MS_SUMMON_DEMON_GREATER -- _1 too similar to
- _I = potential typos;
- * MS_GERYON -> MS_SUMMON_BEAST -- more descriptive of actual
- function;
- * MS_SLOW_DUP -> MS_CONFUSE -- what it is according to
- monstuff.cc:handle_wand() - removed deprecate comment from enum.h;
- * NWPN_VAMPIRE_S_TOOTH -> NWPN_VAMPIRES_TOOTH -- just too awkward as
- it was;
- * added BURDEN_STATES -- applied to you.burden_state;
- * added DEMON_CLASS -- applied throughout;
- * added HUNGER_STATES -- applied to you.hunger_state;
- * added SPELLBOOK_CONTENTS -- applied throughout;
- * added UNDEAD_STATES -- applied to you.is_undead;
- * added SHOPS -- applied to env.sh_type[];
- * expanded CLOUD_TYPES: _SMOKEs, _MIASMA, _DEBUGGING, and most _MONS
- variations;
- * expanded DUNGEON FEATURES to include elements 208,209,210 (Dry
- Fountains VII and VIII and the PermaDry(tm) Fountain,
- respectively);
- * expanded OBJECT_CLASSES to include OBJ_GEMSTONES;
- * expanded SYMBOLS to include SYM_DEBUG;
- * expanded ZAPS to include added ZAP_ISKS_CROSS -- current use
- commented out in zappy(); and
- * mass enum'ing all over the codebase -- you name it, I tried to
- enumerate it.
-
-
-10.01.2000 [Brian Robinson]
-
- * From Josh Fishman:
- + lots of enumming, mostly spells;
- + Paladins get a long sword and long sword skill to start;
- + Spriggans may now be stalkers;
- + poisoning something already poisoned gives extra naughty;
- + more powerful staves added;
- + armour skill no longer affects penalty to spellcasting for
- wearing armor;
- + summon small mammals spell improved; and
- + Vehumet will protect against spell failures and preserve
- intelligence.
- * large characters receive a smaller spellcasting penalty for
- bearing large shields;
- * easy crawl bug in wizard mode fixed;
- * wiz commands for controlled blink and create up staircase added;
- * wiz help fixed so that all wiz commands now have help;
- * subspecies selection in newgame.cc changed to prevent duplication
- of information -- see the newgame.cc for details;
- * Ogre berserkers now start with Club skill level 3 and Maces skill
- level 1 -- the reverse of all other races, because they begin with
- clubs rather than axes;
- * Troll berserkers start with Unarmed skill level 3 and Dodging
- skill level 2, but no weapon skills -- because they start without
- weapons;
- * Halflings may now be assassins and warpers; and
- * Thieves start with more gold: random2(10) * 6 + random2(10) * 4.
-
-
-30.12.1999 [Brian Robinson]
-
- * linuxlib.* axed
- * versions.txt updated to reflect new release
- * version and build date #defines in version.h updated
- * a little more explanatory info added to init.txt
- * some completed tasks eliminated from todo.txt and bugs.txt
- * disclaimer added to this file
-
-
-27.12.1999 [Linley Henzell]
-
- * USE_NEW_RANDOM tuned to reasonable pace when an FP coprocessor is
- absent
- * many minor tweaks
-
-
-09.12.1999 [Linley Henzell]
-
- * new berserk code works with ctrl+direction attacks
- * savefiles deleted after death (under DOS, at least)
- * xp no longer awarded for killing creatures created friendly
- * a few new low-level monsters
- * new init.txt options:
- + colour-code play-screen map, like the 'X' map
- + remove monsters and clouds from map
- * horned characters can wear caps and hats
- * class names switched back into lower case (where appropriate)
- * informed when a monster's enchantments wear off (if in view)
- * more information provided when looking at a monster
- * monsters no longer cast animate dead when corpses aren't in sight
- * most abilities can be used while hungry (not starving)
- * monster invisibility can now wear off (it couldn't before)
- * deflect/repel missiles enchantments now affect missile traps
- * dexterity affects shield use
- * monster AI improvements:
- + strong monsters only pick up missiles if already carrying
- some
- + some improvements made to monster path-finding
- * USE_NEW_RANDOM rand() removed -- randart code relies on random()
- * ghosts deal 2/3 as much damage; xp value reduced
-
-
-18.11.1999 [Daniel Ligon]
-
- * shop prices right-justified
- * yellow Xom patch fixed
- * Xom will sometimes answer prayers
- * evasion strengthened
- * killed-by list enumerated; added "killed by an exploding spore"
- * many calls to 'random() % x' replaced with 'random2(x)'
- * calls to random3() and random4() eliminated
- * Makhleb's minor destruction toned down
- * amulets placed in the discovery listing
- * beginning spells fixed for kobold summoners
- * invisible undead referred to as "it"
- * Spriggan assassins permitted -- speed/low food requirements
- (Spriggan) greatly complement hand crossbow (assassin)
-
-
-15.10.1999 [Brian Robinson]
-
- * can acquire() food: royal jellies given to non-ghouls; royal
- jellies or chunks to ghouls (attempted a variety of foods; proved
- too big a pain)
- * '#define XOM_ACTS_YELLOW' added to AppHdr.h
- * acr.cc:srand() added for USE_NEW_RANDOM to work properly
-
-
-14.10.1999 [Brian Robinson]
-
- * fixed: problem where some super-long strings in describe.cc got
- cut up, causing a compiler error (where possible, please try to
- keep lines < 80 characters)
- * describe_god() enumerated in describe.cc
- * makefile.sgi option added to Makefile (doesn't work)
- * fixed bugs culled from bugs.txt
- * EasyCrawl(tm) door opening: walking into door opens it, running
- into door opens the door and stops player
- * GOD_NO_GOD case added to describe.cc:describe_religion() (it was
- an acr.cc special case, but that's gone now)
- * '#include <stdio.h>' added to fight.cc and spells2.cc because both
- call sprintf() (would compile/link properly without it under Linux
- but not DOS)
- * makefiles .dos, .emx, and .sol tweaked
-
-
-12.10.1999 [Brian Robinson]
-
- * version string changed to "3.40" and '#define BUILD_DATE' added to
- version.h for output alongside version number
- * '#define USE_NEW_RANDOM' added to AppHdr.h
- * duplicate/completed items removed from todo.txt (may have missed
- some -- only cut those marked "done")
- * inspect item command (in shops) changed to 'v'
- * contents of oldmakefiles directory archived as oldmake.zip
- * make distclean now deletes *.sav, *.lab, core, and *.0* (DOS and
- Linux)
- * fixed: some class names in newgame.cc were not capitalized
- * new random number generator added -- should be a little better
- than old RNG; uses rand() rather than random() to generate number
- (#define USE_NEW_RANDOM to enable)
- * wizmode fixes:
- + some creatures (e.g., necrophage) reduce max_hp (NAB:
- reduction to zero normally means death) -- in wizmode,
- negative max_hp results, triggering "you died, but its okay"
- message every turn; added "you.max_hp = abs(you.max_hp)" to
- the 'h' wizard command to correct negative max_hp
- + stethoscope unmapped from 's' key -- terribly annoying for
- me, since I can't rest with '5' under Linux (can still
- stethoscope by targetting or looking)
- + WIZARD compiled binaries append "Wiz" to any scores they
- generate
- + help screen added, accessed by keying in '&' then '?' (lists
- wizard commands in a fashion similar to normal help screen)
- + bugfix: Daniel's command code blocked wizard command
- * Daniel's patches:
- + '#define XOM_ACTS_YELLOW' to render Xom's messages in yellow
- + bugfix: Abyss crash bug
- + new wizmode commands: "banish" and "Xom acts"
- * 'v' and 'V' commands swapped -- examining an item seemed more
- likely (to me) than version check, so "examine" now lowercased
- * wizard option added to Makefile (same as debug but includes
- -DWIZARD)
- * weapons of reaching used to attack one monster behind another may
- instead hit the monster inbetween
- * giant races penalized less for using large shields; normal-sized
- monsters may be penalized slightly more, but only by one or so
- * debug.cc:error_message_to_player() added to output:
- "You have encountered a program bug.
- Please exit the level and save."
- (previous instances of this message replaced with calls to this
- function)
- * haste and slow counters in acr.cc changed to take into account
- amulet of resist slow: haste subtracts random2(2) each turn
- (rather than one -- which could have led to infinite haste, but
- let's not worry about that) and slow subtracts five (one
- previously) each turn
-
-
-02.10.1999 [Brian Robinson]
-
- * help screen reformatted to spot entries more readily (at a
- glance); added "more" capability so that [command summaries >
- screen size] prompt user for more, preventing screen overflow
- * amulet of maintain speed changed to the amulet of resist slowness:
- old item description mentioned both resist slow and a speed bonus,
- but the code only implemented resist slow -- wearing the amulet
- now grants +10 to any hasting and also to maximum possible hasting
- * some silly messages involving hasting and slowing changed
- * messages indicating spell-casting failure added to the raise dead
- functions, but I'm not sure they work (coding very confused here;
- may only work some of the time)
- * '#ifdef LINUX'-ed the acr.cc code [lines 663 - 676] which uses
- variables declared in another '#ifdef LINUX' block (something may
- be screwed up because I'm not sure what's going on here)
-
-
-29.09.1999 [Brian Robinson]
-
- * highscore() fixed so that it doesn't take so long
- * scores output padded with some whitespace to improve appearance
- * bugfix for 'a' being in scores (see bugs.txt and ouch.cc)
- * comments added to enum.h showing where unique monsters are
- * first argument removed from view.cc:draw_border() (same value
- always passed)
- * bugfix: player's score not always saved
- * some problems with the new makefiles noticed while compiling under
- DOS: any platform with its own library (e.g., liblinux) should be
- +='ed to OBJECTS in appropriate system-specific makefile
- * Makefile: noopt (no optimization) added to allow me to compile
- under DOS without headaches
-
-
-28.09.1999 [Daniel Ligon]
-
- * linuxlib.* renamed to liblinux.*
- * keypad for ncurses (Linux port) enabled
- * liblinux.cc:kbhit() will always return 0
- * big lookup table added to liblinux.cc to convert keypresses into
- commands
- * enumerated commands added to both enum.h and big switch statement
- in acr.cc
- * Brian's makefiles added
-
-
-24.09.1999 [Brent Ross]
-
- * bugfix for evasion
- * macro.cc:getch_mul() reverted
- * red devils have probablistic chance for (trident|demon trident|no
- weapon)
- * demon tridents correctly coloured
- * xp spending cap/MAX_SPENDING_LIMIT
- * broad axe, spiked flail, and great flail less common
- * floating point operations in update_corpses() reduced
- * all demonspawn scales/plates can be given at one or two levels
- * max_hp ceiling displayed when player's max_hp reduced
- * from Linley:
- + portal fixed so that it doesn't go below level 27
- + fixed checks for translocating in the Abyss
- + added fix for going to Pandemonium or the Abyss from Hell
- + note about using '+' for targeting added to various prompts
- + ghosts fade away only if they have fewer than half their hp
-
-
-12.09.1999 [Linley Henzell]
-
- * "Over-map" added
- * messages can be coloured -- just call set_colour() before mpr()
- * wild magic effects do more harm; increased likelihood of higher
- levels of effect
- * blink may not work and teleport takes longer in the Abyss
- * a few unrandarts tweaked
- * rewrote part of dungeon.cc weapon generation function; added
- weapon rarity function
- * some monsters receive a wider range of weapons
- * many high-powered demons have greater speeds
- * several changes to skills.cc; having many xp in the pool increases
- the cost of exercising
- * threshold values increased for special "you hit" messages and some
- grammar patched -- see fight.cc
- * three 'silly' monsters removed: dorgi, sword, and guardian robot
- * haste has a direct effect on time_taken, rather than being treated
- separately -- see player_speed()
- * boots of levitation allow permanent hovering
- * random events in Hell are much nastier
- * clouds can be overwritten by other clouds, sometimes -- see
- place_cloud()
- * monster mutation spell affects monsters as polymorph
- * new init.txt variable [verbose] determines level of detail about
- randarts and other magical items in character dump
- * monsters can cast 'direct' spells (e.g., smiting) over other
- monsters if targeting player
- * giants given the correct number of rocks
-
-
-09.09.1999 [Brent Ross]
-
- * damage lowered for some new weapons; tridents made heavier
- * some changes from Dustin Ragan added to the newgame screens
- * spellcasting reduced by weapon size [weight and/or speed]
- * from Linley:
- + verified helmet/helm colour initialisation to LIGHTCYAN
- + swapping item letters outputs both items affected
- + '=' fixed to '==' in randart.cc line 1515
- + bugfix: more scrolling problem under DOS
- + bugfix: problem with the ctrl-direction keys under DOS
- + subspecies selection made into compile time option
- + horns mutation removed as a possibility for minotaurs
- * Great Swords skill removed -- great swords/triple swords treated
- as long swords
- * Trolls + troll leather changed to no effect
- * gdbm stuff removed -- makes things simpler; better security can
- wait for new savefile implementation
- * hand-and-a-half weapons:
- + no bonus if weapon is cursed
- + 1-1/2 hand weapons don't get the speed bonus past 10
- + two-handed weapons can get as fast as speed 7 with skill
- + +random2(3) to hit
- + +random2(3) to dam [all two-handed weapons] applied after
- skill multipliers (i.e., with the dwarf and orc modifiers)
- * multiple shield blocks in a turn becomes increasingly difficult
- * fighters get dodging or armour skills on basis of starting armour
- * shields and large shields slow down attacks
-
-
-27.08.1999 [Brent Ross]
-
- * character dump includes '*' for level 27 skills
- * removing the "skill_change /= 2" line from spell skills was a bit
- hard on early spellcasters (it seems reasonable to give to
- low-level characters and phase out by mid-game, when it isn't
- needed)
- * bugfix: "Crush" required conjurations (hold over from Throw
- Pebble)
- * bugfix: having 1 xp in the pool permitted a lot of free practising
- * penalty increased for heavy armour, now more in line with the new
- shield penalty (are these values high enough?)
- * Linley's new weapon suggestions added: axe, spiked flail, great
- mace, great flail
- * damage increased for some maces and flails (swords are quick and
- accurate, maces and flails hit harder)
- * "Boots" changed to "Barding" in centaur/naga equipment lists
- * crystal plate mail somewhat resistant to corrosion
- * +/- markers added to skills screen for benefit of monochrome
- displays
- * bugfix: labyrinth problems
- * bugfix: LOS corner problem
- * bugfix: can now make with -DWIZARD
- * spellcasting/invocation interference removed
- * weapon additions: broad axe [rare, 15, +3, 17], trident [9, -2,
- 16], and demon trident [evil -- wielded by red devils: 15, -2, 16]
- * polearms/whips of reaching added
- * gladiators given choice of starting with trident
- * '#define USE_NEW_BERSERK' removed
- * bugfix: incorrect display of barding AC value
- * quite a bit of cleanup (converting ints to enums in the old code)
- * draconian AC gains clean-up; removed level four increase and gave
- two AC at start
- * knife added; guaranteed on the first three levels
- * bugfix: memorizing spells was impossible on some terminals
-
-
-08.08.1999 [Brent Ross]
-
- * bugfix: Orange Brains could hang game (MS_SUMMON_LEVEL spell in
- Abyss)
- * bugfix: monsters should no longer occur "under" the player
- * bugfix: portals weren't closed on way out, but hell gates were
- removed (now all are closed)
- * bugfix: cannot unlearn spells outside the array bounds
- * bugfix: manuals should auto-identify on the first read
- * bugfix: Healing book was available from acquirement/Sif Muna
- * missile launchers no longer train/use associated skill when used
- as melee weapons (bows/xbows will train/use maces/flails, slings
- use no skill)
- * Zot traps will no longer message their effects on monsters unless
- monster within LOS
- * bugfix: liquid flame could wrap around and last a long time
- * bugfix: whatever caused "program bugs" to occur in the Abyss
- * bugfix: number of cards in Decks of Power defaulted to 0 and thus
- gave 255 cards
- * Nemelex fixed to give cards instead of Bone Lanterns and Geryon
- Horns
- * bugfix: food was not updating with cards
- * bugfix: quick blades were getting free actions
- * spell points update when Invocations gained
- * granularity of skill gain upped to reduce "stage three":
- + number of learns from manuals upped to accommodate
- + monster xp values reduced to limit "stage two" effect
- * power of smiting again reduced (seems reasonable now)
- * teleport control restrictions (some areas will not allow
- controlled teleport)
- * runes may be stacked
- * invocations and spellcasting learning interfere with one another
- (like elemental magic)
- * increased rate of skill cost per level
- * removed division by two for cost of spellcasting skills
- * greater rarity for unique artefacts (all seem to enter quickly
- into any game, except the Sword of Power, for which the 50% chance
- against creation probably kept it out of my last game for a while)
- * evasion/shields were too good:
- + shield blocking difficulty raised a bit (from base 10 to 15)
- + player's evasion rolled in the monster to-hit check (so that
- a player with an EV of 30+ can still be hit)... added a 1/15
- chance of hitting regardless (players already got this
- advantage).
- * *.h guards moved to after the headers (cosmetic)
-
-
-30.07.1999 [Brent Ross]
-
- * bugfix: visiting Abyss from Hall of Blades resulted in an Abyss
- populated by blades
- * bugfix: problems with highscore entries running off end of the
- line
- * electrical and poison resistances no longer absolute -- 1/3 damage
- taken on successful resist (still no poisoning for those with
- poison resistance)
- * storm dragon breath can be resisted
- * draining will drain available xp pool, too
- * spell levels moved to a function to prevent amassing a large
- number of negative spells (forgot spell that didn't exist)
- * spellcasting more difficult to get
- * bugfix: plants stalking stairs
- * dragon armours reverted to original values -- resistances and
- benefits given are good enough (basic heavy armours were the ones
- in real need of improvement)
- * bugfix: distortion weapons (from Jesse)
- * bugfix: deflect missiles status wasn't listed on '@'
- * slime pit runes are only "possible" runes -- unlikely to get four
- of them now
- * stats added to "elf" dummy monster to allow elf zombies to live
- * added redraw after projected noise
- * bugfix: objects (runes, orb) were clobbered by items given to
- monsters.
- * monster descriptions with huge gaps in them were fixed
- * bugfix: shapeshifters shouldn't polymorph into dancing blades
- (numbers for names)
- * acquirement() better than before for jewelry
- * skills screen can handle more than 26 skills
- * levels of poisoning shown for '@'
- * traps more difficult to disarm as dungeon level increases
- * traps might trigger during attempts to disarm
- * all traps handled by handle_traps()
- * are the new traps too hard on monsters? (probably yes, so they
- take old damage amounts for now)
- * player_light_armour() added, which returns true if the player is
- in light or no armour
- * bugfix: non-flying monsters were flying over traps
- * polymorphed monsters not much of an easy xp trick anymore
- * xp calculation takes into account a monster's speed
- * plant learning capped (no more than first two levels of fighting
- skills)
- * some support added for explosions destroying potions/food on
- ground are only the correct things being destroyed? -- check
- bang.cc and destroy_item()
- * wearing heavy armour provides a minium percentage of damage
- reduction:
- + percent = (skill + base AC of body armour)
- + still needs application to monsters, but monsters don't
- convieniently know whether they possess hard armour (let
- alone armour skill) so this can probably wait
- * extra protection from shrapnel attacks provided by heavy armour
- only
-
-
-13.07.1999 [Brent Ross]
-
- * entrance to the Labyrinth blocked until debugged
- * wizmode code in acr.cc fixed; changed some commands to more easily
- remembered letters; added an identify
- * fixed some cases where cursed jewelry plusses are assumed to be
- based off 100 (creation code and many other cases suggest that
- it's 150)
- * random weapons, armour, and jewelry from acquirement() are now
- uncursed
- * demonspawn horns smoothed out so it's possible to get two levels
- * ranger changed to hunter
- * some gmon_use values changed (from Linley)
- * life protection descriptions changed
- * hunger_inc and ATTR_LIGHTNING_RESIST moved to functions in
- player() -- the attribute is now replaced with
- ATTR_DIVINE_LIGHTNING_PROTECTION (used to denote Makleb or Xom
- protecting player from a lightning attack)
- * checks added for the curses keypad enums
- * learning curve for throwing skill lowered
- * hand crossbows reduced in power
- * learning curve for traps and doors skill lowered
- * played with spellcasting staff identification
- * player ghosts fixed:
- + monsters regenerate hp while player is off level
- + ghosts regenerate and teleport away when player leaves the
- level
- * assassins changed from ninja to hand crossbow types; given
- enchanted dagger as well to help hand-to-hand
- * throwing exercise added to darts, hand axes, daggers, and spears;
- throwing skill bonus added for them, as well -- see item_use.cc
- * scythes, halberds, and glaives given a chance to be weapons of
- speed
-
-
-07.07.1999 [Brent Ross]
-
- * breath from ice-breathing dragons won't destroy walls
- * life protection now a (level/3) chance
- * bugfix: the 120/150 hp ghost thing
- * anticheat code and security db added for multiuser systems
- (requires gdbm)
- * only picking up items has associated delay with autopickup,
- walking over uninteresting stacks shouldn't cost any extra time
- * berserk players fail the check_awaken() test with monsters and do
- not spend experience on stealth
- * dexterity added to stealth
- * ogre magi given short swords instead of daggers
- * stabbing stun effect toned down
- * stabbing dex bonus toned down -- now limited by stabbing
- * assassins start with a dagger; thieves start with short sword and
- dagger
- * stat mods reversed for thief and assassin; assassins given unarmed
- combat
- * wizard stat mods changed to +7 int/+3 dex, making them smarter
- than other spellcasters
- * draconian rangers no longer start with leather armour
- * stealth toned down a bit (and again) in player.cc:check_stealth()
- * to-hit reduced for throw fire/frost and sting -- see
- it_use2.cc:zappy()
- * bugfix: repel/deflect missiles problem -- changed bad REPEL
- reference in acr.cc
- * message added to unwielding vampiric weapons
- * new keypad support hacked up for Unix
- * shots used up 1 in 3 times
- * bonus for crossbows' to hit and dam (item_use.cc)
- * magic resistance for elves (player.cc)
- * autopickup delay upped to 3 (one and two seem to be no delay at
- all)
- * opposing elemental staves can be identified (items.cc, spell.cc)
- * zipfile removal added to ouch.cc to prevent cheating
- * bugfix: view.cc STABBING check should be STEALTH for the no-yell
- check; lowered to a straight percentage check
- * Dwarven/Orc rangers given Dodging 1 (they were a bit short on
- skills)
- * HOrs get orcish bolts (newgame.cc) -- added MISSILES check in
- HILL_ORC check
- * gladiator/fighter modifications: (newgame.cc)
- + fighters: skills -- fighting 3, weapon 2, dodging/armour 2,
- shields 2, stabbing/stealth 1, throwing 2; stats -- str +7,
- dex +3
- + kobold/troll/ogre fighters: same as before
- + gladiators: skills -- fighting 3, weapon 3, dodging/armour 2,
- shields 1, unarmed combat 2; stats -- str +6, dex +4
- + comparision to previous values:
- o fighters: lost unarmed combat; +1 shields and +1
- throwing
- o gladiators: -1 dodging/armour and -1 shield; +2 unarmed
- combat
- o stat bonuses swapped
- o armor for gladiator/fighter switched
-
-
-22.06.1999 [Brent Ross]
-
- * new ranger weapon variations (halfling slingers, dwarven
- crossbowers)
- * Ranger/Reaver problem fixed -- 'R'angers are now 'r'angers (so
- capital letter R used only once)
- * stealth improvements:
- + monsters don't yell (2 * skill) % of the time -- see
- view.cc:monster_grid()
- + large races lose *2 modifier, small races receive *5/2 -- see
- player.cc:check_stealth()
- o Huge (x1): Troll, Ogre, Ogre Mage, Centaur
- o Awkward (x3/2): Minotaur, Draconians
- o Normal (x2): Everyone else
- o Small (x5/2): Halfling, Gnome, Kobold, Spriggan, Naga
- (Naga's aren't small, but they're good)
- + BEH_CHASING_I set for sleeping monsters who are stabbed
- + now a (skill + dex)% chance of stabbing fleeing or confused
- monsters -- see fight.cc
- + backstab effectiveness depends on the monsters behaviour:
- o sleeping monsters are easy targets -- lots of damage
- potential
- o fleeing and confused monsters -- not as much damage
- potential
- o other cases have even less damage potential
- + backstabbing more effective for daggers: daggers add dex/3
- damage before the multipliers -- see fight.cc
- * fight.cc:monster_dies() modified so that *any* summoned creature
- killed by player/pet won't call done_good()
- + Elivion/TSO/Zin have to be passed through (not a problem
- because they can't abuse summoning, anyway)
- + this could use a better fix (i.e., tracking who summoned
- which monsters would help a lot)
- * (Linley's suggestion) monster polymorph fixed to avoid NO_EXP
- monsters: added "mons_flag(targetc, M_NO_EXP_GAIN)" to do-while
- loop
- * (Jesse's suggestion) teleport control/blink spell combo removed:
- CONTROL_TELEPORT check removed from random_blink()
- * racial bonus added to worn armour in player_AC()
- * patched hunger status display bug: added food_change() and redraw
- to down_stairs
-
-
-17.06.1999 [Brian Robinson]
-
- Note: I've tried to annotate all my changes in the code with my
- initials [BCR] so you can grep for them to find my changes.
-
- * some small cleanup here and there
- * new makefile written for Linux
- * changes to the make process which should spare us future
- headaches:
- + OS_TYPE variable in the makefile that is automatically made
- into a #define during make process (should make it easy to
- keep the makefiles straight on the OS)
- + moved OBJECTS variable containing the list of the *.o files
- to a file called make.obj which is included into the makefile
- (should save a little space and keep all makefiles consistent
- on object requirements)
- * defines.h indented and added a header
- * some newgame.cc oddness fixed: various system dependent name
- checks were all messed up in a bunch of nested #ifdef stuff
- (sorted it out)
- * '#define MACROS' now does something: if defined, macros.h and
- macros.cc files will be used, otherwise they won't (right now,
- Crawl will not work correctly under Linux with MACROS defined --
- see bugs.txt)
-
-
-14.06.1999 [Brent Ross]
-
- Some changes I added from Linley:
-
- * bugfix for the Geryon bug
- * message added for berserkers chopping up corpses in rage
- * some incorrect enums in it_use3.cc (for Asmodeus's staff) changed
- * demonspawn xp penalty lowered to 140%
- * Elyvilon sacrifice code fixed to limit abuse
- * priest.cc and priest.h renamed to abyss.*
- * spellcasting penalties for wearing shields upped to +5/+15/+30
- from +0/+5/+15 [buckler/shield/large shield]
- * random stat increase added for Draconians
-
-
-13.06.1999 [Brent Ross]
-
- * Spriggans fully separated from the giant races, creating a
- separate block for tiny races in the armour wearing code
- * cursed rings identify themselves as "sticky cursed" when put on
- * weapon slot updates if player eats food that is being wielded
- * bugfix: black and grey scales reversed for demonspawn (with
- regards to number of levels gained)
- * for spells1.cc, blink() and random_blink(): weapons check removed
- because scan_randarts should be only requirement
- * bugfix: teleport control now works properly on blink (dependent on
- order of includes and target compiler/system)
- * #ifndef checking added around all *.h files to avoid problems
- similar to those above
- * full spell listing line added to character dumps
- * creaky doors are [DEX + (Stealth + Traps) / 2] checks; check added
- on closing doors, as well
- * base values of heavy armour upped by 1 or 2 points
- * spells3.cc:you_teleport() was another case of only checking the
- weapon slot for a property (hopefully, I've changed all these into
- scan_randarts)
- * mutation.cc:demonspawn() had MUT_FAST twice; changed the second to
- MUT_SHOCK_RESISTANCE (as the comment claimed)
- * strength damage bonus had an ugly discrete nature to it;
- multiplied the dammod values by 6 to get a smoother version of the
- same function
- * bugfix: screen needed to be refreshed after spell slot changes
- * new equipment listing commands:
- + ')' lists current, swap a, swap b, and default 'f'ire weapons
- + ']' lists worn armour
- + '"' lists worn jewelry (NB: '=' already used elsewhere)
- * bugfix: "shoot_skill = you.skills[SK_THROWING]" in item_use.cc was
- wrong (should clearly be CROSSBOWS when using a crossbow)
- * bugfix: handle_traps in misc() used env.trap_known instead of
- trap_known (env.trap_known doesn't seem to be referenced anywhere
- else)
- * bugfix: Vehumet's gift was still not quite correct
- * magical staves detection: staves may be detected over time or
- whenever appropriate magic is cast, depending on skill levels
- * Call Imp raised to a level three spell (too powerful for level
- two)
- * a little checking code added to dungeon.cc for monster armour
- plusses
- * bugfix: more line was misplaced on the recognized item screen
- * mix of my/DML's improvements applied to the temp file purging
- system
-
-
-02.06.1999 [David Loewenstern]
-
- * Makefile.dos added
- * define.h updated for compatibility with DJGPP
- * items.cc, monstuff.cc, mstuff2.cc, and spells.cc cleaned up
- (mostly corrected misassignments, unsigned<->signed, unused vars,
- etc.)
- * enums added to monstuff.cc, mstuff2.cc, beam.cc
- * enum.h updated as per above
- * autopickup added
- * '&' command functions only in debug mode
- * remove_ring() now uses inventory letter
- * fight.cc features more colourful "hits" (should be useful later to
- differentiate weapons)
- * bugfix: displaying top scores when no scorefile previously had
- existed
-
-
-30.05.1999 [Jesse Jones]
-
- * highscore() will print more scores on larger windows
- * worn cloaks no longer prevents wearing or removing body armor
- * worn armor can be dropped if it's uncursed
- * armor can be worn without removing the old armor
- * missing ponderous armor message added
- * from Brent:
- + bugfix: weapon line didn't always redraw after casting Blade
- Hands
- + detect_items() uses '~' instead of '*'
- + char_dump.cc dumps failure rates
- * wear_armour() changed to allow Spriggans to wear bucklers
- * quit only pops up save changes dialog if game_has_started is true
- (Mac)
- * AppHdr.h replaces config.h
- * all *.cc files include their header immediately after the AppHdr
- file
-
-
-??.05.1999 [Brent Ross]
-
- * GNU indent 1.91 [-bad -bli0 -i4 -npcs -npsl] applied to get the
- intended BSD indentation style into the code; sorted through some
- things indent won't fix (more cleanup needs to be done -- notably,
- vertical whitespace and breaking up big lines -- but should be
- more readable now; no more column 0 code!)
- * various changes to make code work with NUMBER_OF_LINES instead of
- 25
- * compile-time option to change default view to non-ibm graphics
- * ^R redraw screen command; screen redraws added to appropriate
- places
- * query added for normal saves (^X doesn't ask)
- * ^Y works now; ^Z suspend for Unix systems
- * refresh call added to beam.cc so beams are always visible
- * various things to deal with multiuser environment:
- + compressing save files
- + permissions handling
- + global lib directory for game files
- + changes in name validation and file name structure (added
- uid)
- * adjust item letter function now swaps items (instead of failing)
- * Selective Amnesia spell description is less confusing
- * targeting more intuitive for Angband players (t/space accepts
- targets), behaves better about canceling spells (added better
- abort)
- * unarmed combat fixed to the correct amount of time
- * bugfix: hunger/noisy wield bug where effects were not removed
- * bugfix: air staffs didn't grant resist lightning, yet took it away
- (i.e., left the resist with a value of 255, quite good unless you
- put on something of resist lightning later)
- * rings/wands/scrolls and such output a message when they are
- identified by use
- * fixed several cases where wielded object changed but the screen
- didn't update
- * bugfix: a triple level of a demonspawned mutation was never
- granted
- * patched bug where the inventory is full yet the count is wrong
- (this entire thing should be cleaned up)
- * curses attributes fixed so that alternate character sets aren't
- used under Solaris (this is probably good for any *nix not on a
- IBM alternate character set box)
- * water and earth elementals fixed for same
- * stone lined the finishing room so you can't dig through?
- * some rather silly ways of clearing areas of the screen (under
- curses) removed; proper curses functions used instead (much
- faster)
- * bugfix: going up or down stairs would clear the food status
- * bugfix: incorrect substitutions of new enums (i.e., "AC +=
- SP_HIGH_ELF; /* troll */")
- * bugfix: stat increases where comment noted "/* str or dex */", but
- "str or int" given instead
- * Troll's food consumption increased to better balance the race
- * Vehumet's gift giving code fixed to actually do what is intended
- * experience pool information added to front page
- * some of the duplicated titles (traps and doors) changed
- * stairs leading out of sub-dungeons changed to '<' character, to
- reflect the key required
- * portals coloured on the level map; all portals in Pandemonium are
- intentionally the same colour
- * kobolds receive stat increase every five levels
- * bugpatch: Demonspawn sometimes don't receive their mutations
- * Armour skill a bit better: get more in combat, a little more
- frequently otherwise; EV penalty is now recovered at skill/2
- * Sword of Power reduced in power (now +20 cap, HP/13 - 3)
- * creaking doors partially depend on skills (dex + traps + stealth,
- with benefits of last two dropping after a total of 10) instead of
- simply luck; levitation isn't a sure way to avoid this now
- * wield update inserted after reading scroll of recharging
- * high score file extended to SCORE_FILE_ENTRIES items (currently,
- only the first 15 are ever displayed)
- * USE_NEW_BERSERK:
- + berserk counter decrements faster when not attacking
- (currently using triagular progression)
- + butchery is not penalized (in fact, it resets penalty
- counter); eating isn't either (no reset, though)
- + exhausted counter added to count berserk fatigue
- + hopefully this will become part of a new, better standard
- berserk
- * skills fit onto screen by wrapping the first column (if required)
- * bugfix: RAP_PREVENT_TELEPORT and the like didn't do anything
- because they checked only the weapon, instead of using
- scan_randarts (hopefully, all the cases of this are fixed now)
- * bugfix: wield-amulet-that-you're-wearing bug
- * redraw for weapon when Blade Hands expires
- * #defines:
- + CRAWL_NAME -- auto sets player's name
- + CRAWL_PIZZA -- string describing player's choice of pizza;
- greater likelihood of incidence than others
- + USE_BSTRING_H -- handles the bstring.h/string include problem
- + NUMBER_OF_RUNES_NEEDED (defaults to 3) -- allows compiled
- games to limit entrance to Zot's domain only to those with a
- certain number of runes
- + USE_CURSES -- for things specific to curses and not just
- PLAIN_TERM.
- + USE_TCHARS_IOCTL, USE_UNIX_SIGNALS, USE_SELECT_FOR_DELAY --
- to solve various *nix variant problems should people need or
- want them
- + USE_ASCII_CHARACTERS -- sets the default to non-IBM character
- set
- + SAVE_DIR_PATH -- useful for setting a global lib directory
- for save files, bones files, and the score file
- + SHARED_FILES_CHMOD_VAL -- useful with SAVE_DIR_PATH on
- multi-user systems
- + SAVE_PACKAGE_CMD, LOAD_UNPACKAGE_CMD, PACKAGE_SUFFIX -- for
- people who want to use a program to compress and bundle their
- save games when they're not playing (not pretty, but good
- enough until we invent a better save file system)
- * "(q to drink)" added to fountain description when player steps
- over one
- * Greater Healings base upped to 50
- * Demonspawn transmuters added
- * Spriggans and Halflings consume less food (-1)
- * wizard's hats and caps are randomly coloured
- * carrying capactiy less dependent upon strength; pulled
- carrying_capacity code into a single function (as it's called from
- various different places); encumberance levels represent fractions
- of carrying capacity instead of earlier constant values
- * named artefact weapons slightly rarer; Sword of Power has 1 in 2
- check
-
-
-??.05.1999 [Jesse Jones]
-
- * bugfix: appeared to be three bugs involving extra semi-colons
- * file names can be longer than six characters and can include
- spaces
- * some debugging macros added
- * bugifx: dragon() wasn't handling fire drakes, which meant beam
- color was uninitialized.
- * getstr() only adds printable characters to the buffer (Mac)
- * mons_spells() now returns a struct instead of using an int array
- -- affects mstuff2.cc, mstuff.h, and handle_wand()
- * mons_near() now returns a bool. I've changed code like
- "mons_near(o) == 1" and "mons_near(i) != 0" to "mons_near(o)" and
- "!mons_near(i)"
- * print_description() no longer indexes past the end of the string.
- * minor changes made to the code to allow compilation with the
- "require function protypes" warning
- * UNUSED template function added to config.h
- * rewrote describe.cc and describe.h:
- + reformatted
- + string objects used in place of hard-coded char arrays
- + ten new functions split out from describe_item()
- + get_item_description() and is_random_artifact() added
- * rewrote chardump.cc
- + reformatted
- + string objects used
- + seven functions split out from dump_char
- + dumps artifact info
- * reformatted viewwindow2(); added some ASSERTs; split out
- get_ibm_symbol()
- * reformatted monster() and split out ten(!) new functions
- * reformatted mons_spells() and mons_cast(); mons_spells() case 49
- uses RED instead of (bogus) 20 for color
- * some ASSERTs added to seekmonster()
- * DEBUG renamed to WIZARD
- * DEBUG_BUILD renamed to DEBUG
- * manage_corpses() renamed to handle_time()
- * code changed to use new CORPSE_BODY and CORPSE_SKELETON enums
- * struct.h deleted
- * player::elapsed_time added (holds the total amount of elapsed time
- in the game)
- * level and game save routines tweaked to include a variable sized
- chunk of extra data
- * save level code saves a timestamp; load level code uses timestamp
- to update corpses and chunks
- * many player struct members renamed
- * all of the monsters, item_struct, and ghost_struct members renamed
- * comment blocks added to the top of all files
- * TRACE debug function added
- * you and env are no longer arrays
- * bugfix: display_char_status() displayed the wrong message if the
- player had magic contamination
- * look_around() no longer prints a prompt (so things like blink and
- open door no longer prompt "Press '?' for a monster description.")
- * show_map() accepts '\r' along with '.'
- * Cekugob no longer conveys resistances to fire and cold
- * spellbook_contents() prints unknown spells in light blue
- * show_map() draws shops in yellow