diff options
Diffstat (limited to 'stone_soup/crawl-ref/docs/changes.400')
-rw-r--r-- | stone_soup/crawl-ref/docs/changes.400 | 3278 |
1 files changed, 0 insertions, 3278 deletions
diff --git a/stone_soup/crawl-ref/docs/changes.400 b/stone_soup/crawl-ref/docs/changes.400 deleted file mode 100644 index e5d853b1f0..0000000000 --- a/stone_soup/crawl-ref/docs/changes.400 +++ /dev/null @@ -1,3278 +0,0 @@ -9 August 2001, Michal Valvoda - * Gordon's destroy_item() fix included - * Complete clean-up of dungeon.cc::give_item() + few changes - for example - - Until now was a lot of items colored twice (by give_item() - and by item_colour()) and sometimes differently - - every item goes to right MSLOT-no more MISCELLANY in MSLOT_POTION - - magical items (wands, scrolls, potions) distribution - * repel undead is working again (in turn_undead() was missing call for - behavior_event()) - * added messages for rotting chunks/corpses in player's inventory - * message when Corona wears out + few other new messages - * fixed some (I hope that all) problems with "polymorph other". - As side effect of some solutions - - MONS_HUMAN and MONS_ELF are now valid and fully functional - polymorph targets - - useless MONS_ANOTHER_LAVA_THING was changed to - MONS_SALAMANDER (in case of problem switch it off in dungeon.cc, - yes, there because water and lava monsters are generated differently) - * Renamed MSLOT_UNASIGNED_I to MSLOT_MISCELLANY, added NUM_MISCELLANY - * rewrote misc. object generation to use NUM_MISCELLANY. - Not important for now but I have many new misc. objects I want to include - after release and it will help later. Also new code is much more readable - and easier to modificate. - * inteligent monsters now pick up gold - * added some new unrand artifacts - (ring of Shadows is getting a bit tired :) - * added underground rivers and lakes, - improved water generation - * 3 new compile options - #define USE_NEW_UNRANDS - switches new unrands on - #define USE_RIVERS - switches new underground rivers and lakes on - #define MISSILE_TRAILS_OFF - turns misile trails off. - - not optimal, but works well on - many computers - - defaultly unset - * other minor fixes and updates - * changes.400 updated - - Notes: - ! generation of water and lava monsters isn't very nice, an it would be - fine to change it one day - ! spells in WIZARD mode probably should be cast with some power - - - - - - - -BUGLIST: - - -LEGEND -** outstanding bug; reproduced or definitely needs fixing -xx outstanding bug report; unreproducable, currently unfixable, - or not a candidate for 4.0.0 release -== fixed and released in some form (alpha, beta, etc - see version.h) --- fixed bug, not yet released - - - - -** Various XXX and FIXME comments throughout code from Brent. - -== 1. Casting "Corona" at self shows message "The 0 hits you !" and -hurts you (same for Hibernation, maybe also other spells.) - ->> fixed Corona and Hibernation. Possible that other spells still ->> allow this goofy behavior. - -== 2. Dwarven hunters starts with CYAN leather armor (maybe also -others). It should be BROWN. - -== 3. Missing space in message "You feel verybuoyant !" (same problem -with "You feel morebuoyant !") - -== 4. No message when you quaff potion of restore abilities and nothing -happens. - -> fixed by Brent? - -== 5. Maybe there should be some message when you cast "Static -Discharge" and no monster around. - -== 6. Inscription on "Innate abilities, Weirdness & Mutations" screen -should be centered (my fault). - -== 7. Polymorph and unpolymorph messages are really odd - -e.g. I polymorphed kobold and I got message - "The stone giantThe kobold evaporates and reforms as a stone giant." - -== 8. Empty ebony casket should be DARKGREY and not BLACK. - -== 9. Rare weapons (quick blade, double/triple sword etc.) aren't as -rare as they should be. - -> line 2006 in dungeon.cc should be 1+random(10) <= rarity - -== 11. Missing space in "Elyvilondemands penance!". Of course, same -problem with other gods. - -== 12. 2 messages when wearing crystal armor about that it's too -cumbersome - -== 13. map under DOS is working bad - each next line is shifted by one -character -LRH - At line 1810 of view.cc, in the map function, there is a -for loop involved in printing the map. At present it's -for (i = 0; i < 79; i ++);. To work under DOS, the 79 should -be 80, otherwise the map is skewed to the left and looks -very ugly. - -== 14. stoneskin isn't working - if you look at cast_stoneskin() zou -will see it does nothing with AC - -> I have a fix for this - basically remove the 'else' before the -> transformation-AC-adjustment switch in player.cc::{player}_AC(). - -> There's another "bug" there, too, which is that the corresponding -> 'if' ought to include '|| you.attr[ATTR_TRANSFORMATION] = -TRAN_BLADE_HANDS'. - -== 15. Saw "a buggy helmet" - "a buggy orange potion" - "a buggy red potion" - -== 16. Buggy targeting - can't hit monsters in LOS. Could fix.. both - for throwing and beaming? - -== 17. A hill Orc Chaos Knight (Zom) started with 14/15 hit points. !? - -== 20.One more thing that needs cleaning: the new invisible monster code. - You don't get a message when your missile hits a monster, but you - *do* get a message when your missile *misses* an invisible monster. - IMO if we do make invisible monsters harder to detect than they - were, we ought to make these (absent) messages exactly opposite: - no message for miss, yes message for hit. - - -xx 21. wearing Troll Hide, read unknown scroll, ASSERT(index < SIZE) in - FixVec fails, abortion, core. - -== 22. Amulet of Rage isn't auto-identified when put on, but ability is - visible in 'A' menu. - -== 23. torment_monsters in spells4.cc asserts like crazy. It should have a line -like: - if (mon != NON_MONSTER) { - -> fixed again; player wasn't getting hit. Not adding magic resist. - - -== 24. In dungeon.cc there's a huge function called builder() with some code at - the bottom that looks like this: - - if ( you.where_are_you == BRANCH_HALL_OF_BLADES ) - { - for (bi = 1; bi < GXM; bj++) - for (bj = 1; bj < GYM; bi++) - if ( grd[bi][bj] >= DNGN_STONE_STAIRS_DOWN_I && grd[bi][bj] -<= DNGN_ROCK_STAIRS_UP ) - grd[bi][bj] = DNGN_FLOOR; - } - - The increment in the for loops should be swapped. - -== 25. A backtrace does indeed reveal the problem. From line 2432 of - monstuff.cc: - - for (count_x = 0; count_x < 3; count_x++) - for (count_y = 0; count_y < 3; count_y++) - { - good_move[count_x][count_y] = true; - -... - - if ( grd[monster->x + count_x - 1][monster->y + count_y - 1] < okmove ) - { - good_move[count_x][count_y] = false; - continue; - } - - There's a monster at (39, 69), the above loop references (38,70). - -== 26. This line - - unsigned char grik = grd[monster->x + mmov_x][monster->y + mmov_y]; - - from monstuff.cc around line 2730 is also causing an ASSERT failure. - - GDL: in fact, there are a bunch of places in monstuff.cc where fleeing - or confused monsters can try to "run off the map", apart from the - 'good move' checking in bug 25 above. - - -== 27. monsters equipped with missile weapons - commonly associated with launchers who - insist on tossing the missiles by hand. - -== 28.About line 909 of monstuff.cc is - - if ( show[monster->x - you.x_pos + 6][monster->y - you.y_pos + 6] ) - - The electric eel is at (48,36), I'm at (55,32), so we're indexing (-1,10). - The array show is 19x19, and I'm thinking the +6 should be +9. - - There's a similar construct for lava snakes a little further up. - -== 29. An indexing error in item_use.cc, line 3092 or so, after reading a scroll - of enchant armour while not wearing body armour. - - you.inv_type[you.equip[EQ_BODY_ARMOUR]] is inspected even though - you.equip[EQ_BODY_ARMOUR] is -1. - - - do - { - affected = 1 + random2(6); - } - while ( you.equip[affected] == -1 ); - - // NOTE: It is assumed that armour which changes in this way - // does not change - // into a form of armour with a different evasion modifier. - - if ( you.inv_type[you.equip[EQ_BODY_ARMOUR]] == ARM_DRAGON_HIDE - || you.inv_type[you.equip[EQ_BODY_ARMOUR]] == ARM_ICE_DRAGON_HIDE - . - . - . - ) - -== 31. I just disarmed a blade trap, and the game seemed to hang. - -Since TRAP_BLADE are of type DNGN_TRAP_MECHANICAL, this code in misc.cc, -line 1492 or so, tries to make a stack of trap items: - - if ( trap_category(env.trap_type[i]) == DNGN_TRAP_MECHANICAL ) - { - for (j = 0; j < 20; j++) - { - itrap(&beam[0], i); // places items (eg darts), which will automatically stack - - if ( j > 10 && one_chance_in(3) ) - break; - } - } - -But misc::itrap() doesn't create these blades, and instead: - - default: - getch(); - break; - -waits for input. It seems like a very strange default. Ultimately, -you can wait it out by moving back and forth. Then you find a few -questionable item where the trap was. - -== 32. Banishing self to Abyss when you are at Abyss does really - strange effects - ("The 0 hits you !" - I really don't understand why) - Propably it's connected with 0-beams problem - - some spells shows message "The 0 hits you !" when cast at player - I suggest some kind of check whenever is 0-beam casted (e.g. if - its targeted at player then shows message "It's not good idea." - or so) - -== 33. I don't know how it happened but I've found 2 off-screen corridors. - (Btw. I hopped it was fixed) -- Finally, what you've all been waiting for: a fix for the -infamous "corridor off the screen bug" (or at least one of its -aspects). In dungeon.cc in vault_grid(...), add the line -(vgrid == '\0') ? DNGN_ROCK_WALL : -amongst all of the other ones. The problem was that the -vault code was null-terminating some of the lines of the map, -causing the default of DNGN_FLOOR to be put in place of all -the '\0's. - -== 34. Potions, scrolls & wands are not updated when wielded and used. - -== 35. I've already reported this one but I remind that - - When zapping some bolt towards the top of the screen and - gaining level during it the rest of the bolt is drawn at the - bottom of the screen (at message lines) - -== 36. Missing space in message "<Servant>is recalled." - e.g. "Mummyis recalled." - -== 37. Redundant space in message "You are diseased." - -== 38. Why is "demon whip of flaming" white ? I've found such one. ->> demon weapons are always given random colours. ->> MV: Should not be fixed now. - -== 39. "Summon Daeva" spell summons Angel. - Why ? "Daeva" exists and it's possible - to summon it during summon_ice_beast_etc() - -== 40. At fight.cc::monster_die() is line - ( you.religion == GOD_VEHUMET - && (!player_under_penance() - && random2(you.piety) >= 20) ) - There should be 30 and not 20, because piety equal to 30 is limit - for this ability (see religion.cc). - -== 41. It was mentioned already but - - Descriptive messages like - "It's lightly enchanted to do more damage." - can never appear because of badly placed brackets - {} - in describe.cc::describe_weapon() - Program gets on line - if ( item_dam >= NWPN_SINGING_SWORD ) - and if this fails the programs continues on the line - int spec_ench = item_dam % 30; - and it means it can't get to messages about enchantment. - - Or am I missing something ? - -== 42.In monstuff.cc::mons_speaks() is few times used sprintf() insteed - of strcat(), e.g. - - sprintf(info, " %s \"Help!\"", - coinflip() ? "yells" : "wails"); - - Problem is that in the begining _info_ contains name of the monster - but sprintf() deletes it. It means that output is - e.g. " yells "Help!"" instead of "Sigmund yells "Help!"" - -== 43. Which compile time options will be made standard? What are the the - appropriate defaults for the config file (set in initfile.cc)? These - have to be laid out before the release. - -SEPARATE_SELECTION_SCREENS_FOR_SUBSPECIES I vote no on this one. Could be made into an initfile or command - line option if people really want it, but there just aren't enough - subspecies to justify it. -ALLOW_DRACONIAN_TYPE_SELECTION This one is typically considered "cheating". Part of the fun of - being draconian is finding out what you actually are. -USE_ELVISH_GLAMOUR_ABILITY Haven't really tried out glamour. The grey elf or two I've played - that has had it has never really successfully used it. -USE_BETTER_MINOR_MAGIC_BOOKS These should be okay now. -USE_NEW_CLOUD_CODE This code is pretty cool, I sometimes wonder about potential - twinkiness at high levels with this in a corridor (where it - could fill quite a stretch reaching more than a half dozen - squares from the center of the effect in a single turn). - Maybe a safeguard should be added to keep the effect within - a certain radius from the target? -USE_SILENCE_CODE I've never been overly fond of silence. I don't like the - way it cancels enemy priests and spellcasters. -USE_HARDER_AC_RULES Things are more sane with is option, unless scaled demonspawn - transformers turn into scaly spiders. -USE_NEW_ALTAR_CODE I liked things a bit more random. I once had orcish mines with - three Ely altars (which I thought was pretty interesting). - Modifying this code so there's at least a chance of an outside - altar would be nice. -USE_NEW_MINIVAULTS These are probably okay. - -USE_GOD_COLOURS We do much worse than this right now with all the channels on. -// > USE_GOD_COLOURS -// Yes. Actually, this option should probably be either removed or replaced with -a USE_MESSAGE_CHANNEL_COLOURS option or some such (gods are just part of -this system now). Brings back to mind the possibility of specifying -non-colour-based highlighting options like "stars", "capitalized", -"indented", and such. Would have to switch from an enum to a bitfield, -and the initfile parser would have to be adjusted, but other than that -it would be simple to do. - -USE_OPTIONAL_WIZARD_DEATH Test option, don't need this. -USE_LIGHTER_MAGIC_ITEMS These are reasonable. -USE_NEW_TORMENT_CODE This is good. -USE_SEMI_CONTROLLED_BLINK It's powerful, but as long as it needs the blink spell and - a separate form of teleport control it's probably okay. - As an all in one spell it's over powered (but that's only - in the code for wizard mode testing right now). -USE_NEW_COMBAT_STATS Not sure these really have much of an effect on anyone's - game. Could be left out. -USE_SPELLCASTER_AND_RANGER_WANDERER_TEMPLATES Not sure about the wanderers. The ranger and spellcaster templates - might just be encouraging people to try and re-roll for twinkiness. - Might be best with just the basic warrior wander type. -USE_SKILL_POOL_DRAIN This one is pretty silly. There's no real reason to punish people - who get a large pool (mostly from killing a large monster or two). - To increase the cost because of that doesn't make much sense, and - the skill cost doesn't need to be made any tighter (it might even - be due for a bit of loosening). -USE_NEW_RANDOM Should be default, the suggestion to reverse it into USE_OLD_RANDOM - is probably good. - -From Michal: -> SEPARATE_SELECTION_SCREENS_FOR_SUBSPECIES -No. -> ALLOW_DRACONIAN_TYPE_SELECTION -No. -> USE_ELVISH_GLAMOUR_ABILITY -Yes. Works fine. -> USE_BETTER_MINOR_MAGIC_BOOKS -Yes. -> USE_NEW_CLOUD_CODE -Yes. -> USE_SILENCE_CODE -> I've never been overly fond of silence. I don't like the -> way it cancels enemy priests and spellcasters. -I don't think so.I vote for this. - -> USE_HARDER_AC_RULES -Yes. -> USE_NEW_ALTAR_CODE -> I liked things a bit more random. I once had orcish mines with -> three Ely altars (which I thought was pretty interesting). -> Modifying this code so there's at least a chance of an outside -> altar would be nice. -Agree -> USE_NEW_MINIVAULTS -Yes. -> USE_GOD_COLOURS -Yes. -> USE_OPTIONAL_WIZARD_DEATH -> Test option, don't need this. -Of course no. -> USE_LIGHTER_MAGIC_ITEMS -Yes. -> USE_NEW_TORMENT_CODE -Yes. -> USE_SEMI_CONTROLLED_BLINK -Yes. -> USE_NEW_COMBAT_STATS -> Not sure these really have much of an effect on anyone's -> game. Could be left out. -I think this one is OK, I vote for. - -> USE_SPELLCASTER_AND_RANGER_WANDERER_TEMPLATES -Yes. -> USE_SKILL_POOL_DRAIN -No. - -xx 44. might want to branch off a version of the source for the next release, - with the unused spells and code cut out (along with some of the - unimporant comments). The full code would naturally still be used - as the development code. - -** 45. documentation (crawl.txt, crawl.6 will probably need some changes) - -== 46. bow messages on skill screen might take up too much real estate - (things are already tight for people on 24 line terminals once they - get all the skills) - -== 47. very noisy gcc --Wall compile (it was bad before, I'm afraid I've - made it worse, it's hard to tell I get a lot of warnings from - curses that have to do with some unimportant system conflicts). - -Oh, in makefile.sol... one of the $(INCLUDES) is spelled INCLUDE - -== 48. giant spores sometimes seg fault when exploding (I added a simple check - for NULL, but that's probably not the problem) - - ugly, ugly, ugly, ugly. But fixed. the problem was that spores - were kind of cleaned up before exploding (so that the death message - wouldn't come twice), but then they fell through to the "handle - special ability" case the next time through the "monster action" loop - and all hell broke loose. - -== 50. look into why you.equip[EQ_WEAPON] (aka weapon) is used in - fight.cc::monster_fight() and monster_attack() (ie. when the - player isn't even involved!) - - > no effect in monster_attack() - > bizarre use in monster_fight() - the - attacking monster gets several attributes of the player's - weapon!!! This is clearly wrong. - > MSLOT_WEAPON was also used in a couple places where hand_use - was required. - -== 51. BUG: no "scores" file == segfault. - -> some pretty nasty bugs in the score file stuff. Cleaned up segfault -> and some ranking bugs. Scores file is now proper text; Crawl can -> still read old scores files. Scores of 0 no longer printed. No more -> segfault on non-existent file. - -xx 52. 'X' (view map) causes core dumps on terminals larger than 64 lines? - -> could not repro on Win32. Tried 65 line terminal, 'X' look no problem. - -== 53. Anyway, up on onelist.com (or egroups.com, whatever) -is an updated mon-spll.h file including the enums for -MST_foo and a couple MS_foo that Brent had missed -in the file ... note that the comments before these lines -in mon-util.cc: - -static unsigned char mspell_list[][7] = { -#include "mon-spll.h" -}; - -are duplicitous of those in mon-spll.h, and can probably -be struck (or vice versa?) ... I had also thought that there -was a MS_foo matching value 100 (the beastly equivalent -of SPELL_NO_SPELL) ... maybe Gordon can add it in? -clear application to mon-spll.h and monstuff::handle_spell(). - - -of course, one could go whole hog and add enum constants -for the "slots" in the template (actually the position *less one* -would be enummed, see handle_spell() and mons_spell_list() -for details) ... - - -these lines in monstuff::handle_spell() can be enummed -with the appropriate MST_foo enum constants: - -int msecc = ((monster->type == MONS_HELLION) ? 30 : - (monster->type == MONS_PANDEMONIUM_DEMON) ? 119 - : monster->number); - -[[ 30 == MST_BURNING_DEVIL, 119 == MST_GHOST ]] - -that 119 value also turns up in mon-until::mons_spell_list() ... but -this gets into "overlap land" because these values are stored in the -sec field of the monster struct, which stores a number of values -unrelated to spell-casting (though I guess applying the template -enum throughout the codebase is one way of sifting out when sec -values are used for one purpose instead of another ...) *ANYWAY* - -== 54.In enum.h -- - -/* these are for the player spell struct, we'll see what's what later -*/ - -#define SPELL_FOOD(x) (x) -#define SPELL_MANA(x) (x) -#define SPELL_LEVEL(x) (x) - - -All of the above can be killed, as the macros are no longer used. - -The SPELL_EXCLUSION enumeration (right below the macro -definitions) can also be killed, as I never implemented it, and in -hindsight, if it is ever to be stuck back into the player spell -data structures, there is a much better way of doing it. So, please -yank these out, before someone gets hurt :P - -So, this bit in spl-util.cc can also be axed: - -/* //jmf: commented out; add field `restriction' to spell struct if desired - // (and if anyone finds a use for such a thing) - int spell_restriction( int which_spell, int which_restriction ) - { - int this_restriction = (int) seekspell(which_spell)->restriction; - return ( this_restriction == which_restriction ); - } // end spell_restriction() - - */ - - -== 55. Minor typo: - -MST_RAKSHAKA - -should be - -MST_RAKSHASA - -so that it matches up with the monster's actual -name throughout the codebase. Nothing major, -but it will require fixing (present in enum.h and -the enummed mon-spll.h I just uploaded). - -== 56. "* * * LOW HITPOINT WARNING * * * - You die..." - - At that point, it's really too late. The warning perhaps - ought to occur at the beginning of the player's turn as - opposed to when the character takes damage. - - I've also seen two warnings in one combat turn ... can't - remember if death accounted for one of them. - -> The problem is that the check is you.hp... it should be (you.hp > 0)... -> I quick-fixed that one while I was trying to get the code out the -> door and missed. - -== 57. Hunger messages don't seem to appear, even if their color is set. - -> Gave general cleanup of food.cc; merged hunger_warning and food_change. -> removed unnecessary modification of hunger status from level save/load, -> fixed up some logic problems. - - -== 59. Lot's of the enums in enum.h have trailing commas, eg - enum CONFIRM_LEVEL - { - CONFIRM_NONE_EASY, - CONFIRM_SAFE_EASY, - CONFIRM_ALL_EASY, - }; -I don't think this is legal in ANSI C. - -> Borland C++ didn't complain with Wall, so it's not a problem. - -== 61. In libmac.cc there's a function called FlashButton. The line that calls -HiliteControl should look like this: - HiliteControl(control, kControlEntireControl); - -== 62. In message.cc mpr's definition includes default arguments. This isn't -legal C++ (only the declaration can have default arguments). The same -applies to random_near_space and simple_monster_message in monstuff.cc, -apply_random_around_player in spells4.cc, and yesno in stuff.cc. - -== 63. monspeak.cc needs to include monspeak.h at the top of the file, not -monstuff.h. - -== 64. overmap.cc includes curses.h, this should be wrapped in #if !macintosh. - -> Acutally it should be wrapped if USE_CURSES is not defined. Which it is now. - -== 65. spl-util.cc should include the standard limits.h instead of the -non-standard values.h and should use INT_MAX instead of MAXINT. - -== 66. The MacStuff directory should be deleted. - -== 67. Very Old Buglet: - Spider Form spell turns one into a black 's', which corresponds - in monsterland to a scorpion, while giving one all the features - of the noble wolf spider, represented by a brown 's'. - -== 68. It's really not that bad. Worse is the fact that I noticed that -breathe fire gives a bonus if the player is transformed (doesn't -matter what: Ice Beast, Blade Hands, or Dragon)... that's a bug. - -== 69. player.cc - If you look at line 2312 you'll see that - redraw_screen () is called. But it's problem under - DOS because redraw_screen() is defined only under - PLAIN_TERM. - See stuff.cc - there is - #ifdef PLAIN_TERM - void redraw_screen( void ); - -> got rid of all of the plain_term() wrappers around redraw_screen. -> instead, redraw_screen() becomes a no-op for non-plain term systems. -> I hate seeing #defines all over (supposedly) non-system dependent code!!! - -== 70. view.cc - at two place there is - - #ifdef DOS_TERM - puttext(2, 1, 34, 17, buffy); - #endif - - Probably it's possible to compile that with some compilers - but not all and corretly it should be - - #ifdef DOS_TERM - puttext(2, 1, 34, 17, buffy.buffer()); - #endif - -== 71. When you cast "Twist" spell and choose direction you'll always get -message -"There is no monster there!" -even if it's not true. If you want to hit monster you have to target -monster by using "*" or "+". At least this spell shouldn't ask for -direction but for target. - -xx 72. After battle with guardian naga character is told he is not carrying anything. - -> don't see how this could happen.. g. nagas can't affect player inventory. -> must have hit a key that tried to use an inv type you didn't have, or num_inv_items -> got out of whack. - -xx 73. Some initial prompts not prompt colour. I'll have to document which. - -== 74. Throwing anything left seems to cause a segfault and core file ... hmmm ... - item_use.cc, line 1294: DUMB BAD CODE! Throwing anything while weilding - nothing results in a crash. Clearly someone plays neither Transmuters nor - Monks. Clearly we need some function to safely get the current weapon. - -== 75. Throwing stuff while weak: I'm of the opinion that things thrown ought - to land at least next to the player, while currently, large things end - up at the player's feet. This annoys me - "I didn't say (d)rop, I said - (t)hrow!". - -> it's a playability issue, especially with large amounts of items and -> autopickup. All thrown objects will go at least 1 square - we'll -> consider a 'throw' of a very heavy object equivalent to 'shove' it. :) - -== 77. line 234 of mon-util.cc ought to be: - "if (mc == MONS_PLAYER_GHOST || mc == MONS_PANDEMONIUM_DEMON)" - but instead it's: - "" - - This will fix the elemental damage problem I was complaining about -- - clearly Linux does not automagically give clean pages. - -== 78. Remove trailing commas in enum.h - -== 79. Stores are still trying to sell me gold pieces, and at extortionary rates. - -== 81. + spells4.cc::418 assert failed: ASSERT( targs[i].x != 0 && targs[i].y != 0 ); - should this be ( targs[i].x || targs[i].y ) ? (YES) - -== 82. if (mons_flag(monster->type, M_SPEAKS) && one_chance_in(21) - && !silenced(monster->x, monster->y)) -{ - mons_speaks(monster); // mv: removed silence check -} - -That check for silence shouldn't be there, because mons_speaks() -handles silence by itself - see monspeak.cc (Btw. I've already removed -this check when I wrote mons_speak(), but somebody have returned -it back *grin* ). - -== 83. However, in a couple places in acr.cc, there is code like this: - - if (grd[you.x_pos][you.y_pos] == DNGN_LAVA - || grd[you.x_pos][you.y_pos] == DNGN_DEEP_WATER) - { - if (you.species == SP_MERFOLK) - { - mpr("You dive into the water and return to your normal form."); - merfolk_start_swimming(); - } - - fall_into_a_pool(true, grd[you.x_pos][you.y_pos]); - } - -== 84. // From: Daniel Ligon <makmorn@qis.net> -[easy_butcher] -// When I see it happen, I have no weapon in hand and no weapon in the -// "a" slot. After hitting "D" to Dissect, I am prompted for a weapon. -// I can choose a cursed weapon of either known or unknown status and will -// receive a message that the weapon sticks to my hand. In both cases, -// I return to unarmed after butchering - and the weapon is now identified -// as being cursed. - -Okay, then the problem isn't with the original check... all that -needs to be done is make sure that is the target weapon (after the -call to wield_weapon which does all the validating and prompting) -isn't removed if it's cursed. Should be a fairly simple check, -although it has to validate if a weapon is wield first (of course). - -== 85. This seems to be a new bug (can't see an obvious cause)... - Brain Worms seem to have a sticky flame attack now. - -> SOMETHING was(is?) setting mon->number to be equal to mon_type. This -> was setting butterflies (MONS_BUTTERFLY == 66) to have a colour -> of 66, and brain worms (MONS_BRAIN_WORM == 69) to have the -> spell type of MST_MOTTLED_DRAGON (69). Why?? I don't know yet. - ->> turned out to be define_zombie. Random zombies were not getting ->> zombified due to some parameters getting passed incorrectly from mons_place(). ->> all quasi-zombies were getting correct mons->number set but then mon->type ->> was not being set. - -== 86. This appears in player.cc::player_hunger_rate() - - // jmf: hunger isn't fair while you can't eat - // Actually, it is since you can detransform any time you like - bwr - if (you.attribute[ATTR_TRANSFORMATION] == TRAN_AIR) - return 0; - -Some testing reveals that in fact one cannot untransform ("You're too -hungry.") nor even turn visible. If hunger was not meant to preclude -these reversions, there's a bug in the ability code. - - - Josh -I would guess that there is a bug in the ability code wrt -untransform - I have not looked at the code for this in a -while, but the "untransform" ability is likely lumped with -all other abilities in terms of forcing a check of one's -current hunger level before proceeding further into checks -and then (finally) triggering the ability. - -Trivial fix, that is where the bug is: the ability code (98% -certain) - it does not make sense to attach a hunger cost -to detransformation, unless you wanted to curse players -first learning how to transform with costs on both ends -(it takes effort to change shape, effort to change back). - -The latter model of double-ended costs associated with -transformations make sense, but I do not believe this was -the intended model in Crawl. - -xx 87. PS: I was looking through player.cc because a white imp "chilled" my - mummy assassin. Still looking for how that could happen. - -> everything seems to be WAD: -> could have been wearing two rings of fire, or dragon armour, or had a -> randart with cold susceptability. Mummy only gives resist, not immune. - -== 88. PPS: White imps seem to pick up darts & stuff, while red imps don't. - IMHO that's exactly backwards. White imps are have a much better - range attack than darts provide, while a dart-throwing red imp - would be a major pain. - -> actually the issue is gmon_use (the last parameter in mon-data.h) -> - red imps have 1 (opens doors) while white imps have 3 (doors, -> weapons & armour). sorry not explicit enough. - ->> No, make white_imp.gmon_res=1; red_imp.gmon_res=3. Current values ->> but reversed. - -== 89. PPPS: Noticed punctuation creep: "You can't weild a two handed weapon - *AND* a shield at the same time." Patriots should conserve stars. - -== 90. The eat chunks on the ground prompt is uncoloured. -Following prompts are coloured. - -== 91. Prompt & crashes: try doing an x-look while you -can't see any monsters, then press '+'. You will -get a nice, shiny new core file in your directory. - -The x-look prompt also claims to allow you to go -to the current target using 'p', but does not. 'P' -does nothing. - -== 92. Elves in their Halls seem to wear a lot of Orcish armour. - -== 93. > And finally to end on a good note... -> I've love what has been done with the coloring, the autopickup and -> the automatic door opening. This is *very* useful and as a user I -> truly do appreciate the effort here. (It would still be nice to be -> able to pick up gold when your slots are full but I'm not going to -> complain.) - -Argh. I haven't checked the latest dev source (but I will -this weekend), but is this still the case? If so, can Gordon -please put it in the bug queue as something to fix for the -upcoming release of 3.*cough* ??? - -== 94. -> I was descending through the Elven Halls, and reached level 6. On this -> level were three stairwells down to level 7, and an entrance to the -> Labyrinth. -> -> It is my habit to descend/ascend each stairwell as I find them, since -> the dungeon areas of crawl are sometimes disconnected. So I believe -> the three stairwells on this level actually did lead to level 7. -> -> After filling my gut on fresh elven meat, I descended in the Labyrinth, -> spiraled in to the Minotaur, slew it, grabbed its stash, and ascended -> back to the Elven Halls, appearing at one of the stairwells down. -> -> But now all three of the down stairwells on this level lead to the -> Labyrinth rather than level 7, and the Labyrinth is being mapped. - -I can verify that I had visited Elven Halls level 7 (I had saved a -copy of my player files before entering the Labyrinth). As it happens, -level 7 was the bottom of the Elven Halls with the Vault. - -I cleaned out the Vault, then returned to the Labyrinth. Once again -returning from the Labyrinth caused all the stairwells on level 6 to -lead to a mappable Labyrinth. - ->> Fixed. up_stairs() was not correctly setting was_a_labyrinth in ->> the call to load(), and so the labyrinth level would get saved ->> _over_ the n+1 th 'real' level. REALLY BAD. Yuck. Bleah! - -== 95. Auto-butcher + Staff of Power + dagger in off slot. -Every time a corpse is butchered max SP is reduced... - -This probably has to do with the fact that staves of power are one of -the few things that are toggled on wield/unwield (a lot of the other -properties are calculated as required). - -== 97. The routine mon-util::seekmonster() needs to check that -> -> mon_entry[(*p_monsterid)] -> -> is not -1 before returning -> -> &mondata[mon_entry[(*p_monsterid)]] -> - -== 98. In my current game, I found an entrance to the Hall of Blades on -> level 4 of the Vaults. I entered, killed a few weapons, and returned. -> Upon returning, the game crashed. When I restarted, I was on level 1 -> of the Crypt. I exited the Crypt was back at the entrance I had found -> on level 3 of the Vaults. -> - -- Fix for the Hall of Blades staircase bug... Although the -staircases leading out of the HoB are called staircases "back -to the crypt", and although the enum for them describes them -as returning to the crypt, and although climbing one of them -sends you to the crypt, they are in fact supposed to lead back -to the vaults, and the level range of the HoB has been set -accordingly. To fix: - - Change the name of the enum DNGN_RETURN_CRYPT_II to - DNGN_RETURN_VAULTS_II (may need to be _II or _III) - - Change in direct.cc, in look_around(...), "A staircase - leading back to the crypt" to "A staircase leading back to - the vaults" - - Do the same in item.cc in item_check(), where it tells you - what you're standing on - - And, finally, in up_stairs() in misc.cc, the case for - DNGN_RETURN_VAULTS_II (or whatever it's changed to) needs to set - you.where_are_you to BRANCH_VAULTS. - ->> this code needs a complete overhaul to be more comprehensible, ->> but I don't know if I'm up to it at the moment. :\ - -== 99. There was lava in the Crypt. I don't object to it, but it seems a -> little out of character, much like Josh's observation that elves wear -> a lot of orcish armour. - -== 100. Characters who might go berserk while fighting, say from the mutation -> or wielding a randart, can have go_berserk() called on them while they're -> already berserk. - ->> which is fine. Fixed up berserk messages for all possible situations - ->> no more double messages, or inappropriate ones. - -== 101. I've run across a couple Borises in my current game. It must be a -> popular name among Liches. - ->> fixed. Bad range check in dungeon.cc. - -== 102. If a monster tries to mutate you and fails due to your resistance -> to such, you get a message from mutate() - "You feel rather odd for a -> moment." and from direct_effect() - "You feel very weird for a moment." - ->> fixed all manner of mutation messages. - -== 103. Removing a ring of strength causes these messages: -> -> You are being crushed by all of your possessions. -> You possessions no longer seem quite so burdensome. -> -> since this happens in item_use::remove_ring(): -> -> case RING_STRENGTH: -> decrease_stats(STAT_STRENGTH, (you.inv_plus[ring_wear_2] % 100), true); -> increase_stats(STAT_STRENGTH, 50, true); -> break; -> -> The suppress_msg flag of decrease_stats and increase_stats does not get -> passed to player::burden_change(), which has no arguments. -> -> It is interesting to compare that code with similar code to remove the -> strength one gets from a randart ring. From it_use2::unuse_randart(): -> -> const int str_plus = inv_randart_wpn_properties( unw, 0, RAP_STRENGTH ); -> if (str_plus != 0) -> { -> you.strength -= str_plus; -> you.max_strength -= str_plus; -> you.redraw_strength = 1; -> } -> - -== 104. There is a monster named "another lava thing". Not a bad name, but -> it leads to "You kill the another lava thing!" messages. Perhaps a name -> change to "mother of all lava things" or "lava thing's cousin". - -> "another lava thing" has no stats in mon-data.h, so it was -> obviously a dummy placeholder and has been removed from possible -> generation lists. - -== 105. Assorted typos: -> -> You possessions no longer seem quite so burdensome. -> You heara loud "Zot"! -> -> File name: Minh.txt -> File name: Minh.txted successfully. - -== 106. Something causes misformatting of the descriptions for -> SPELL_APPORTATION and RING_TELEPORT_CONTROL; - -== 107. After I picked something up, I could drop one thing, but nothing after -// that. I think we ought to have periodic checks that num_inv_items is -// correct - recounting once per turn is not a significant calculation. - -Ah! There's the problem... that variable was deprecated a while back -and replaced with explicit code in the standard places (because it -was impossible to keep it up to date). If someone is actually making -use of it again then of course the entire system is going to break -down. - ->> really deprecated this time. - -== 108. Fixed apply_area_within_radius(). Makes far fewer unnecessary calculations - now. - -== 109. Fixed rendering slowdown on windows console. - -== 110. Scorefile reading doesn't pick up special characters like a-umlaut or e-ague - -== 111. I was in the Tomb, slaying mummies with style and grace, so naturally -a fair amount of cursing of my stuff took place. - -The Ring of Shadows now has an inv_plus of 100, I assume since -monstuff::curse_an_item() adds 100 to inv_plus. I can't remove it, -since inv_plus > 80. It is not labeled as cursed and scrolls of remove -curse are ineffective since inv_plus < 130. I suggest that, for now, -curse_an_item() should leave randarts alone. - -As an aside, is "artefact" a valid variant spelling of "artifact"? - - -== 112. Another result of the great Mummy slaying was that my flesh would -rot away. I think display_char_status() should list this. - - -xx 113. I came a across a butterfly which had color 66. I could not -determine why (N.B. 66 is MONS_BUTTERFLY.. what's going on?!) - -> me neither. All calls to create butterflies should go through -> define_monster(), which sets m->number to 0..15. See #85. - -== 114. in view.cc, inside the #ifdef DOS_TERM things there are some -bad things happening to the puttext calls. buffer.buffer() -should be replaced with buffer, and buffer2.buffer() (or is it -buffer.buffer2()? I forget) should be replaced with buffer2. -Otherwise it refuses to compile (this may be an incompatibility -between borland C++ and djgpp, Gordon) - -MV: Buffer.buffer() should be only buffer. Problem is with _buffy_ which -needs to be _buffy.buffer()_. - -== 115. Also in view.cc in noisy() at 1304 the distance function is -being used wrongly. Change if (dist <= distance(... to -if (dist >= distance(.... This problem caused most monsters on -a level to wake up as soon as a noise was made, and was why -characters were getting mobbed. - -== 116. the init file is broken, at least under DOS. It is reading -in the player's name okay and is finding the other options, -but when read_bool() tries to work out whether an option is -followed by "true"/"1" or "false"/"0" it fails to detect -anything and just goes with the default. I don't know how any -of the weird code in initfile.cc works (what was wrong with -the stdlib string functions?) but, at a guess, this might -have to do with the way DOS writes End Of Line in its text -files - if a line is concluded by something other than -'\0' the string code might fail. But that's just a guess. - ->> made a couple changes and it seems to work fine on win32.. ->> but this is highly dependent on the compiler's implementation ->> of the standard string template (grrr!) - -== 117. A blank/empty scorefile will not be updated; scores of 0 not kept. - -> both fixed. - -== 118. If you aren't carrying anything except money, you can't drop it (money) - -> can now specify quantity of money to drop. Accepts any value. - -== 119. My character entered the Tomb, arriving in the upper left hand corner, -at position (9,7). I tried to target, and failed the ASSERT for the -mgrd array. This took place around line 1227 of direct.cc in the -mons_find() routine. const int targ_x = you.x_pos + temp_xps - 17; - const int targ_y = you.y_pos + temp_yps - 9; - const int targ_mon = mgrd[ targ_x ][ targ_y ]; - -In this case, you.y_pos is 7, temp_yps is 1, and so targ_y is -1. - -== 120. The Amulet of Cekugob does not stop one from teleporting when one - has the teleport mutation. - -== 121. I entered Hell from level 22. When I exited Hell I was placed on - dungeon level 27. - -BWR:I believe this was the better alternative of earlier problems dealing -with returning to the main dungeon... used to be you could end up on -level zero, or on a semi-random level inside solid rock. After those -problems were fixed the portals seemed to work as above. - -== 122. When I returned to Hell, I was placed on one of the down stairwells. - -== 123. Remove which piece of jewellery? - That isn't a piece of jewellry. - -Webster has jewelry, jeweled. Changed all occurances. - - -== 124. Oops, that ring feels deathly cold. - B - a cursed amulet of the gourmand (around neck) - -xx 126. I hit a giant spore with a bolt of poison flame, and the critter -> didn't explode. It just disappeared. - -LRH writes: -Not sure exactly, but I'm pretty sure that if you do enough -damage to a spore with a single attack it will fail to explode. -The relevant code should be in monster_die(). - -== 127. A fire giant hit my Spriggan (AC: 5, EV: 13) with several fire balls -> over a few turns, but none hurt much. I didn't get any messages about -> resisting the effects. Is this the odd fire resistance problem? - ->> monster fireball damage wasn't being set correctly. - -== 128. The Spriggan has strength 10 and dexterity 21. When he wields a bow -> or crossbow, I get the message: -> -> Your relatively low strength is limiting your use of this weapon. -> -> I don't think strength has any effect with crossbow, and probably doesn't -> effect bows. - -BWR: As a side note, is the low Throwing skill message still on the skills -screen? Has anybody tested it with all the skills yet (there is a -lack of room, and the screen should fit in 24 lines). Maybe that -message would be better as a message when wielding the bow itself, -although I'm not sure how much the mechanic is required (I typically -upped Throwing skill along with Bows because it's a cheaper and faster -way to up accuracy and damage than raising Bows alone). - -== 129. The file makefile.obj seems to be missing... this is a problem - for most of the other makefiles which include it. - -== 130. The APPNAME in makefile.sol should probably be changed back to crawl. - -== 132. In spells0.cc should be also included stdio.h under DOS -because sprintf() is used. - -xx 133. > Are you going to do the player-ghost/demonlord "structure" as well? -// - Um, dare I ask, why? I've never looked at this part of the code. -BWR: -It's currently an array of chars. It would probably be easier to -understand as a struct with fields for AC, max HP, spells, resistances -and such. - -== 134. When I cast Static Discharge, I get occasional fails of the ASSERT -on line 419 of spells4.cc: for (int i = 0; i < targs_found; i++) - { - ASSERT( targs[i].x && targs[i].y ); - func( targs[i].x, targs[i].y, divided_power, 0 ); - } - -> Fixed. Brent's algorithm is sound, but his coding wasn't. :P - -== 135. When I use the Sif Muna granted ability of Selective Amnesia, I hit -an array bounds assert in seekspell() - which is exactly: - -return &spelldata[plyrspell_list[spell]]; - -The value of spell is 210 (SPELL_NO_SPELL), and so plyrspell_list[] -goes out of bounds (it is not protected by the Fix[Ary|Vec] stuff) -which then triggers spelldata[] going out of bounds. - ->> plyrspell_list[xx] being set to SPELL_NO_SPELL _before_ call ->> to spell_power. stupid logic error. - -== 136. I swung my Staff of Air: - -You miss the imp. -You miss the imp.the imp is jolted. -You are wielding a staff of air. - -== 137. I'm wearing an amulet of the gourmand, but I never seem to get labelled -as being Full (or Engorged). - ->> is this a problem? Gourmand allows you to eat rotten/contaminated flesh, ->> how could this be related? - -== 138. Trolls can eat huge amount of chunks of flesh without becoming full - -> oops. Nobody could ever get full. Stupid logic error. - -== 139. Name in INI file causes crash unless all caps. - -xx 140. Non-Beams displayed one cell at a time (thanks to Michal) - -== 141. M_SPELLCASTER removed from ball lightning. - -== 142. All beams/missiles leave a visible trail now (at least until window - redraw). Was too hard to get right w.r.t. killed creatures and cloud - trails, and most liked it the other way anyways. - -== 143. Some enchantment beam behavior fixed. - -== 144. Update & examine command-line switches & options - -// - update & verify behavior of command line switches & options -Monochrome isn't connected to anything. The "no colour" option could -be handled by imposing a set of colour macros (if they were made widely -available)... most monochrome systems can do bold/standout, although -that typically ends up backwards or ugly (if it's done via reverse). -Could possibly just be removed rather than bother with it. -The "-nb" (no black) option is obsolete with colour macroing. -Basic options to consider: -- list scores (param for top X) -- select race/class -- character name (for loading and starting new character) -- pointer to game directory (ala crawl_dir option) -- pointer to initfile (ala CRAWL_RC environment variable) -Later things can get fancy, but we should at least have those. - -xx 145. I'm playing the latest win32 binary pre-release (January 11). -The first problem is that I can't get to the religion screen. To produce -'^' with my keyboard I have to press <Shift> + <the button with ^> -followed by a space. However, in Crawl this doesn't work (it used to work -with earlier versions before this series of win32 binary pre-releases). -All I get is 'Unknown command'. - -== 146. When zapping a wand of Draining at a line of Kobolds and Big Kobolds, -: the game froze if something was killed. The game was recoverable, and -: the bug repeated itself. Killing these by hand caused no problems. -: Using this wand on other creatures caused no problems. - ->> probably related to double-whammy monsters were suffering from poison/ ->> draining. Hit dice might have gone below zero, etc. - -== 147. Any ranged attack that hits you has a chance of destroying -: your scrolls, not just fire-based ones, and they all give the message -: that your scroll has burst into flames. Confused the heck outta me -: the first time it happened. "The puff of frost hits you! One of your -: scrolls bursts into flames!" - -== 148. -: 1 other thing I just thought of. When targetting in version 3.43 -: you could use the dot on the keypad to select the target. Now, to -: use that dot, I have to use the shift button with it. - -xx 149. Also it seems like mummies have lost some of their cold resistance... I -had trouble with an ice dragon that should probably have been real easy... -on the other hand fire damage does not seem to be all that nasty to them -anymore (I dunno about the mummy monster but this seems to be the case for -mummy player chars, none of my equipment provided fire resistance). - -== 150. Fixed new description() problem. Oops. - -== 151. Changed some messages for burning and chilling monster attacks. - note that mummies _could_ be chilled by melee attacks - "chilled" in fact - means that the player resists cold. New messages are tied to actual - extra damage from fire/cold. - -== 152. Fixed "always poison/drain" on beams/bolts that didn't actually - hit (problem with side effects in check_mons_resists() -> - mons_adjust_flavoured()) - -xx 153. The level files for my characters don't seem to get deleted, even after -the character dies. I'm assuming that they're meant to be deleted, as -they used to be... or is there some reason that the game now keeps them? - -> can't repro - works fine on 2000. - -== 154. I found one of those checkerboard-like rooms with alternating wall and -floor squares (you know what I mean? The ones where you can only move -diagonally, sort of like the Hive, but occuring in the regular -dungeon?)... it was made of metal walls, and had a small open area in the -middle. There were some items which seem like they should have been -placed inside the open area, but were inside the walls instead, and -therefore inaccessible. I can't figure out how to get Crawl to dump a -screenshot, but I'll recreate it here, using X to represent a wall. -.X.XXXX -X.X.[.X -.X.X@)X -X.XX!.X -.X..XXX -X...X.X -.X.X'X. -All three of the items around my character are inside walls; examining -them says: -You see a [item name] here. -A metal wall. -You can't move on to them or anything. Note that if you shifted them all -three squares down and two to the left, they'd fit nicely in that little -open area, which leads me to suspect that possibly that's where they were -meant to be. - ->> several places in dungeon.cc where this could happen. Think I've squished ->> them. - -== 155. I'd suggest killing /unused, but only after moving oldmaps.txt -into /misc. Within /misc, scoretab.cc should probably be updated -to the new scorefile format (or killed) and untab.pl should be -killed, as it is an unreliable detab script - rh.bat seems -near useless. - -In /Docs (why is this uppercase?), NEW.txt is empty, buglist.txt -should be updated to the current status (about which, Gordon only -knows), I need to migrate messlog into changes.340, changes.340 -needs to be renamed changes.400, the remaining files need to be -updated. - -The old LOS code can die, I think I lost my fascination with it. -I don't believe anyone else was defending its existence. - -== 156. On this topic, I get tons of warnings about FixVec.h and FixAry.h -not having a final newline. Could you add one to these? - -== 157. The compiler also noted a problem in dungeon.cc: - if (you.where_are_you == BRANCH_CRYPT || you.where_are_you == BRANCH_TOMB) - { - if (type_floor == DNGN_LAVA) - type_floor = DNGN_SHALLOW_WATER; - if (type_2 == DNGN_LAVA) - type_2 == DNGN_SHALLOW_WATER; - } -The last statement should probably be an assignment. - -== 158. Finally, I can't compile dungeon.cc at all: -dungeon.cc: In function `void link_items ()': -dungeon.cc:6395: warning: comparison between signed and unsigned integer expressions -FixVec.h: In method `FixedVector<TYPE, SIZE>::FixedVector (TYPE, TYPE, ...) -[with TYPE = char, int SIZE = 7]': -dungeon.cc:7998: instantiated from here FixVec.h:125: `char' is promoted to `int' -when passed through `...' FixVec.h:125: (so you should pass `int' not `char' to `va_arg') - -This also affects spells4.cc (instantiated from line 729). - -== 159. Problems with print_description() under DOS? -Stupid, stupid, stupid.. good god. used .data() instead of .c_str() - -== 160. Make Boris back into a non-Unique and give him appropriate mons_speak() - -== 161. More portable savefile format. - -== 162. Well, played with the new pre release, speed is the same (drat) and the -ghoul food bug still exists... the one where they have to eat a meat -ration to cure the 'hungry' status. Haven't hit on any other bugs yet but -I've only run 3 characters who all had very short lives. - -== 164. Direct-effect monster castings (smiting, etc) would crash the -game (forgot to set beam_source for non-beam type attacks). - -== 165. The warning messages given for wielding objects should also be given -at the start of the game (if applicable). - -== 166. Anyways, I'm starting to -think that the margin should be a little smaller, the 79 colomn one is -just too wide to read comfortably... a 70 column one should be fine. - -== 167. -// > All staves work like this - the special power can activate even if -// > you miss your foe by a mile. -// > -// > Is this desired behavior? -// -// I would think not. - -** 168. Enable loading of 3.30/1.x chars & level files. - -== 169. When casting Corona and hitting somebody I'm allways getting -additional message "Nothing appears to happen.". -eg. The goblin is outlined in light. - Nothing appears to happen. - - (silly logic problem) - -== 170. In ouch.cc is under DOS missing #include <file.h> - -== 171. There is still small problem with new print_description(). - Description window for DOS is (25,1,80,25) - see for example - describe_spell(). It means that lineWidth in print_description() - can't be 70 under DOS_TERM and should be 54 or so (of course - those windows can be changed but it's much more work). - DOS term and shoul be 54. - -== 172. I started a grey elf wizard and it begins play with an orcish robe, not an -elven one. (flimsy coding) - -== 173. -"You miss the ice beast. -The ice beast hits you! -The ice beastchills you. -Ouch! That really hurt!" - -== 174. tag.h and monstuff.cc need final newlines - -== 175. tags.cc and files.cc include mem.h, but gcc doesn't come with one. - The routine memcpy is declared in string.h, which is already included - in these files, so commenting out worked for me. - -== 176. spells3.cc has the same problem with FixVec.h that dungeon.cc had - in pr6. - -I guess around line 729 or so. :) g++ -Wall -DLINUX -g -DDEBUG -c spells3.cc -FixVec.h: In method `FixedVector<TYPE, SIZE>::FixedVector (TYPE, TYPE, ...) -[with TYPE = unsigned char, int SIZE = 7]': -spells3.cc:729: instantiated from here -FixVec.h:125: `unsigned char' is promoted to `int' when passed through `...' -FixVec.h:125: (so you should pass `int' not `unsigned char' to `va_arg') - -== 177. Was just looking at that code, and noticed the comment about the -"other five gods" (the one's the player cannot start the game -worshipping). Anyways, that comment was added there before the -always_greet option, which does meet the requirement for filling -in the extra gods (since the real purpose of always_greet is to -remind the player of some non-obvious details about their character -in case they haven't been playing in a while (ie. race, class, deity, -weapon penalty). - -== 178. Could you please put the string "-O2 -fno-strength-reduce" in your makefiles -dealing with GCC? It'll speed up the game by a *huge* amount. (The --fno-strength-reduce is to get around a bug in many versions of GCC.) -Because of the exceeding slowness in the released versions, I compiled my own -version, which leads to point - -== 179. Why in the name of Cthulu did you remove "#include <files.h>" from ouch.cc? -To misquote Rufus Wainwright, "Cause all I get is instant errors/Instant errors -Instant errors". - -== 180. Update scorefile format to a delimited ACSII numeric representation. - (hmmm - will take some thought) - -xx 181. I am not sure if its a bug or not, but using pr7 on NT4, every now and -again when I die, Crawl causes a general protection fault (or whatever its -called in NT) and the game crashes. The good side to this is I don't lose -my character and can go back to my last save and keep playing. - -> When I'm having a good character going ("good" being -> 1000+ points or so), the game tends to crash when the character dies. - -== 182. I just got the mutation "you can exhale a cloud of poison" but I recieved -no special ability to activate it. At the time of the mutation, I was -wearing a ring of shadows that gave me the ability to turn invisible. -Perhaps the ring interfered with it? Hope this helps. - -> data error in mutation.cc. Fixed. Nagas now get breathe poison -> sometimes if they _would_ have got the spit poison mutation. - -jmf> That mutation ought only occur for Nagas. A non-Naga getting -jmf> the mutation is a bug. - -xx 183. Move rand(), random(), srand(), srandom() to libxxx - -> behavior is too complicated.. - - - -== 184. Files are not cleaned up in DOS - see end_game() in ouch.cc - -== 185. Fixed more monster spell crashing-if-kills-player problems. - -== 186. Quokkas have no mass, hence they never leave corpses. - -> That was there original stat, should probably be set to 200. - -== 187. I found lots of bug while using 'recall undead slave' skill. - -I noticed this bug as well. Seems the recall spell places your servants in -spaces next to you, regardless if there is already something there or not. -In effect, monsters which are stacked seem unable to move, including -hostile monsters. When the top monster leaves the space the game places a -"floor" tile there. - -> really, really dumb logic error - corrupted mgrd as a side effect!! - -== 188. Several piles of gold on the same spot should merge - ->> so should other things. Fixed item_place() and drop_gold() appropriately. - -== 189. Merfolk hunters not available, NEWGAME.CC suggests they should - -== 190. Weld potion drank should dissappear from the screen - -== 191. First the bug: While in the Abyss, I came across an orange 8. Hit x and positioned -the cursor over it to see what it was (thinking it was probably a type -of golem I'd never seen or something) and it said: - ->> There was a tiny bit of overlap between the area which got nuked and ->> the area that got transferred. Probably left pointers to invalid ->> items lying around, which would produce exactly this: - -!questionable item (c100, +0, p50, p(2)50, d0:q0) - -== 192. Now the complaint: Because you can use the letter keys to move around, -the numeric pad -has obviously been modified so that the numbers map on to the letter -keys... but there is a problem with this, namely that 7 maps on to y, -and can therefore be used to answer in the affirmative to a question. -I now realize why easy_confirm exists, since some people no doubt use -the letter keys to move and may accidentally say yes to something they -didn't intend to... but for those of us who use the numeric pad, the -option doesn't seem to make much sense, since your finger doesn't come -near the 'y' key all that often, so I just had it set to all. Then I -was in a situation with one of my best characters ever where there was -lava directly north of me and I wanted to move northwest, but my -finger hit directly between the two keys, basically hitting 8 then 7 -in rapid succession, plunging me into the lava and killing me. I -suggest one of two things; either make the numeric pad work the same -way as the letters ONLY for movement, since the only time other than -movement when you're going to receive input from the numeric pad is -when it's accidental, or at least put a warning in the init.txt where -it talks about easy_confirm saying something like "WARNING TO KEYPAD -USERS: The number 7 is mapped on to the letter 'y,' which can result -in accidentally answering yes to questions; it is suggested that you -leave easy_confirm off." - -== 193. > An orc priest who hellfired him. - ->> fixed in general non-tracer spell cleanup. Oops. - -== 194. Scrolls of immolation don't do anything. The big fireball -: appears on the screen, centred on you, but it doesn't damage you or -: any of the creatures surrounding you, and doesn't have any other -: effects. I'm assuming that this is a bug. - -> Good catch. Direct explosions were being treated as tracers. :P - -== 195. A more minor bug: if you read a scroll of teleportation, then -: start butchering a corpse, you'll continue to butcher the corpse even -: after you've teleported, successfully chopping it to pieces, even -: though it hasn't come with you. - -== 196. Well, the title says it all, but, when I reach level 27 of the dungeon the game -crashes (not a windows page fault, a 'dos page fault'). The character has not -retrieved any of the runes of zot yet, so I figure I'll try again after getting -one (or if that don't cure it 3 just in case). I'm on a windows 98 computer -running the DOS compilation of pre release 7. I also had a few times on level -26 where I couldn't move (alt tabbing out and forcing the game closed worked -but I was set back a ways... so I made it a point to level level 26 hehe). One -other thing I noticed was the dungeon clean up never happened (on level 25 but -I had no problems on that level even after the floor was full). New monsters -seemed to get weapons and armor but no more corpses once the floor was full. - -Something else I've always wondered about was the slime pits, are you supposed -to get a rune of zot out of there or does the royal jelly 'eat' it or -something, I've never gotten anything from there but it seems like it's the -kind of place that would have one (specially with a monster that is no where -else in the game sitting in a pre-fab dungeon). - - ...and then this follow-up on Feb 9th... - I mention the runes because it was level 27 I was trying to enter when it -crashed on me, I wasn't actually entering zot, just the level with all the -gateways to zot. Was just trying to go down there to get a little more exp -before I went to get the runes necessary to get into zot (the advantage of -being a mummy... you can go do things in squirly order according to whim hehe - -mannix writes: - -Just confirmed it, lvl 27 is definitely a gaurenteed crash, even with 3 -(well, 4... got two in pandemonium... should that have been possible?) I -still crashed when I tried to enter lvl 27. On the other hand I've found -some fairly nifty places to explore for exp :). Another problem I found -was that in a lot of areas the dungeon clean up is not nearly aggressive -enough, I'd go so far as to say that when it happens all non-quest items -should probably be removed, in some areas after spending a bit of time -repeatedly killing random monsters (the joys of playing a mummy hehe) item -drops would show up something like 'item 923589237 has dropped' (and -that's a sure sign of impending doom, or at least a lock up on exit). I -worked around the problem on one level by using my own clean up method... -summoning imps/demons... some of them will pick up weapons (and in places -like hall of blades that's all you'll normally see) and when they -dissappear those items are gone for good. - -== 197. : Using a spell staff of smiting in melee combat reveals the following message: -: You're wielding some sort of staff I've never heard of. (fight.cc) - -== 198. Trying to cast Apportation on a pile of gold crashes the game - (division by zero) - -== 199. Draconian Hunters start with a club instead of a bow. - -> It's a little bit worse than that... The bow is clobbered into being -> a club instead of the leather armour being turned into a robe (draconians -> shouldn't being wearing leather armour since it doesn't fit). - -== 200. Need more aggressive item cleanup. - ->> perhaps trigger this on item creation, if a spot can't be found.. go ->> through the item list destroying less valuable items or small piles of ->> gold. - -== 201. Teleporting a fish (by hitting it with weapon of distortion) might -cause misc. problems - e.g. fish is teleported again and again -(because it lands on the floor) - -> won't happen; checked & rewrote bits of monster_teleport() to be -> more readable, but the code was fine. - -== 202. I was getting mutations after wielding/unwielding weapon of -distortion - -> yes, it's in the code. Nice eh? - -== 203.Darts of bugginess found in shop - -> dumb logic in dungeon.cc::items() - -xx 204. Electric eels sometimes shoots lightning to strange (probably -random) places and not at player. - -> don't see how. - -== 205. Put in a fix for scorefile lines longer than 80 chars (will break) - -== 206. a new score at the bottom of the list would not be added. - -== 207. Misc documentation changes from Don - -== 208. Won't get "Sorry, you can't target what you can't see." when you're -just looking around.(with 'x') - -== 209. Improved 'C' command (gives XP left to go) - -== 210. Far strike & twist could not target with direction keys (they are -pseudo-direct effects, which screwed stuff up. Argh!). Changed mode -for those spells to DIR_TARGET, which means hitting a direction key will -take player into targetting mode. No doubt will be hearing gripes about -this too. - -== 211. Patched up multiuser compile. - -== 212. Quokkas don't generate corpses now. Someone else wants to revamp -the corpse system, go for it. - -== 213. Easy butcher defaults to false now. - -== 214. Options for Race & Class added to init file - -== 215. Replace mutate() calls for miscast effects with addition to mutagenic -radiation; perhaps all miscasts (may) add to this, and high level miscasts -changed to give_bad_mutation? - ->> done. all spell miscasts give small mutagens; high level spell miscasts ->> can get pretty nasty too, but still only small chances of mutation unless ->> you're also invisible/hasted/wielding nasty artifact. ->> missing a couple high level spells badly in quick succession can be really ->> nasty. I'll leave it as an easter egg. :) - -== 216. Monsters won't throw stuff if they can melee. - -== 218. Misc stylistic & code fixes from Jesse - -== 219. Charmed monsters will no longer be described as 'friendly'. - -== 220. Brave attempt made to use correct pronouns (introduced mons_pronoun) - -== 221. Shop names more visible when looking around & moving - -== 222. Can now pickup auto-combine items even with full pack - -== 223. scrolls of fear won't auto-identify if nobody is scared by them. - -== 224. "Killed by giant ant" when smitten from afar by Orc priest? - -> very subtle. Death_source can be zero, since it is an index into -> the monster array. But I didn't think it could be - if killed by -> monster#0, scores like this would be generated: -:4:0:89:Methea:0:6:3::3:14:3:0:0:0::2:0:0:0:0: -> which would be translated to "killed by a giant ant" - -== 225. Don't generate monsters in LOS? - -== 226. Get name after race & class (pretty easy now) - -== 227. Fixed up some job titles. - -xx 228. Game crash on character death; after equip list, but before hiscore list - -== 229. Massive speedup on win95/98. Fixed all cursor dance and buffering -problems. Fullscreen is still pokey on most machines, but it's finally -playable. - -== 230. No staircases to Zot on level 27 (dlevel == 26). It looks like a - piece of code in dungeon.cc::builder() may be changing stairways to Zot - to dungeon floors, regardless of level (occurs after place_branch_ - entrances()) - -== 231. crawl -plain now actually uses non-gfx character set - -== 232. All female uniques are now properly gendered (missing break statement) - -== 233. Divine resistance messaged a bit better (w.r.t. Xom, Makhleb) - -== 234. messaging for vampiric attacks fixed up. - -== 235. Monsters generated on teleport traps will have unobtainable loot! - > shouldn't generate them on tport traps any more. - -== 236. Fixed DOS include of <files.h> - -== 237. Fixed overly long string in '?' screen - -== 238. More multiuser fixups. Changed default makefile to linux. - -== 239. Moved god favor messages more in line with prayer messages (too confusing - otherwise). Fixed a couple grammatical errors. - -== 240. Can't hit some monsters in LOS (rounding problem?) - Need to rewrite for integer math. :P - -== 241. Crash on long player names (duh!) - -== 242. Miscellaneous spelling/grammatical errors - -== 243. Do something about this: probably remove from compile options. But leave - bow/throwing warning in, as it is a _very_ important penalty. - - : One odd thing, though. I chose a Human Fighter with a short sword and when - : I began the game I get "Your relatively low dexterity is limiting your use - : of your weapon." Other than the three occurrences of "your" in this - : sentence, I find it odd that 10 dexterity is too low to wield a short - : sword. Or is this a bug? - - "Your relatively low <foo> is limiting use of your <weapon name>." - - Would be a slight alteration to kill one "your" and actually - designate the weapon being affected (I know it is pretty clear - that the only weapon affected is the one wielded, but I like - some things spelled out). - - To avoid those excessively long weapon names with all the plusses - and things, the weapon name string should probably be just the base - weapon type (e.g., "short sword" instead of "+1, +2 short sword of - orc-slaying and back-scratching"). As the str/dex modifiers are - based on the base type and not all that other goodness, this seems - an ok thing to do. - - Anyway ... I still think that this check ought to be performed - prior to weapon selection by a player at start-up, so that he - or she knows his/her character will be handicapped by the choice - of one weapon type or another. I think that thread was raised - briefly last week or so. - -== 244. The game crashes when I start a monk. - - In skills2::wield_warning(), these two statements need to be swapped: - - int wepType = you.inv_type[you.equip[EQ_WEAPON]]; - - // early out - no weapon - if (you.equip[EQ_WEAPON] == -1) - return; - - -== 246. Rewrote monster behavior routines. - -== 247. Cleaned up some function prototypes in dungeon.cc - -== 249. Put gendering into monspeak.cc - ->> couldn't find anything.. wonder what Michal meant? - -== 250. More typos - -== 251. remove caps from filenames - -== 252. Summoned critter problems: -From: "Ben Goetter" <goetter@m...> -Sent: Thursday, March 15, 2001 9:45 PM -Subject: Crawl 4.0pr10z 13 Mar report Bug report: summoned creatures are -appearing in the same space as the -caster. (Cast spell, summoned creature not visible; move one space, -creature appears in space vacated by caster.) -<FIXED> -Date: Fri, 16 Mar 2001 09:00:41 PST -From: tgord <clubs-mail@y...> -Subject: Re: Crawl 4.00 pr10zf [Yahoo! Clubs: Linley's Dungeon Crawl] -I've noticed that summoned monsters sometimes appear on the other sides of -walls now. ^^^^^^^^^^^ -<FIXED, for player summons> - -== 253. Change messages for weidling awkward weps to show up only at - values <= -4 (for real problems) and change message to "not taking - full advantage of the weapon" or somesuch. More flavour, too.. - maybe messages like "you're too clumsy" for dex<10; others for - high (but unbalanced) stats: "You'd be (a lot) better with - that weapon if you were (stronger/more dextrous)" - -xx 254. Give Earth Elementalists a few stones (say 10-15) to help them - get started? - ->> addressed with the new, 'easier to run away from' monster AI? - -== 255. I thought someone had added the MST_* enum usage to mon-data.h, - -== 256. Would be nice if the wizard patch I put up in the files directory - made it into the code. - -== 257.PS Oh, using crawl -scores leaves the terminal in a bad mode... - stty sane is required to sort things out (either curses shouldn't be brought - up with this option, or it should be shut down properly). - -Just change the exit() call to a stuff::end() call. -// check for highscore list - must be done BEFORE libw32c init - if (Options.sc_entries > 0) - { - cprintf(" Best Crawlers -"EOL); - hiscores_print_list(); - end(0); - } The argument to end() is the exit value. That should probably be 0, -rather than 1, since there's no error here. - -== 258. This bug ( if it is a bug ) has been around for a while... it seems -: that sometimes when you poison a monster and it dies from the poison, -: it gives you exp, and other times it doesn't. Is there some logic -: behind this? A low level character of mine just barely managed to -: kill an OOD hippogriff using poison, and got gypped of the exp. =( - ->> Very old problem in beam code; poison_monster was being called ->> incorrectly. - -xx 259. I once got a corpse from a summoned snake - I hadn't been -able to reproduce it, but it's corroboration. - -== 260. Give monsters large bonus while target is MHITYOU and behavior is - BEH_WANDER, during player stealth checks - monsters will still be on - the lookout for the player. - - Give a small chance each clock tick of deleting the MHITYOU; i.e. monster - 'forgets' about the player. Stupid monsters forget faster.. - -== 261. -I was playing a transmuter, and noted that I was getting "You -punch the <foo>" messages while fighting in spider form. I'm not -getting the unarmed punch attack, so I think the verb comes from -fight::weapon_type_modify(), which doesn't take transformations into -account: - -static int weapon_type_modify(int weapnum, char *noise, char *noise2, - int damage) -{ - int weap_type = WPN_UNKNOWN; if (damage >= HIT_WEAK) - { - if (weapnum == -1) - weap_type = WPN_UNARMED; - else - { - if (you.inv_class[weapnum] == OBJ_STAVES) - weap_type = WPN_QUARTERSTAFF; - else if (you.inv_class[weapnum] == OBJ_WEAPONS) - weap_type = you.inv_type[weapnum]; - } - } strcpy(noise2, ""); switch (weap_type) - { ... case WPN_UNARMED: - if (you.species == SP_TROLL || you.mutation[MUT_CLAWS]) - { - if (damage < HIT_MED) - strcpy(noise, "claw"); - else if (damage < HIT_STRONG) - strcpy(noise, "mangle"); - else - strcpy(noise, "eviscerate"); - } - else - { - if (damage < HIT_MED) - strcpy(noise, "punch"); - else - strcpy(noise, "pummel"); - } - return damage; ... } -} - -xx 262. - -from Win32 precompiled pr10 on Windows 2000: - -You see here a white potion. -B - a white potion -Drink which item? (I choose B) -You feel much better. -Eat which item? -That banana was delicious! -B - a white potion -You finish eating. - ->> Must have had autopickup off, but I cannot reproduce.. think it ->> might have been fixed by fixes to message.cc - -== 263. When i name a character 'con' or 'Con' it freezes the game. - -== 264. Generate wandering monsters on/near stairs about 10% of the time, - regardless of player position, but disallow banding and generate a - message ("A %d enters from above/below!") if player is around. - -== 265. Has anyone else noticed that after a draconian dies, every high-score on the - screen is listed as having been a draconian? When a non-draconian dies, the - draconian is listed as having come from race "Yr". - -== 266. Cleaned up monster blinking. - -== 267. Monsters following up the stairs if they are "not aware" of the player (odd!) - -== 268. Some problems with monsters not following player position correctly, or - just plain waggling back and forth when they should be beating on the player. - Sigh.. gotta look closer at those movement routines. :P Not ready for - prime time yet. - -== 269. Simple fix to handle_behavior() - -== 270. After a while, crawl again went of bounds, this time with this - backtrace: - - #6 0x80e9119 in seekmonster (p_monsterid=0xbffff1e0) at mon-util.cc:816 - #7 0x80e91bc in mons_intel (mc=-1) at mon-util.cc:837 - #8 0x80db2a7 in behavior_event (mon=0x8247e90, event=1, param=0) - at monstuff.cc:394 - #9 0x81339c7 in noisy (loudness=8 '\b', nois_x=45 '-', nois_y=34 '"') - at view.cc:1249 - #10 0x8132927 in monster_grid (do_updates=true) at view.cc:941 - #11 0x8131bca in viewwindow2 (draw_it=0 '\000', do_updates=true) at view.cc:574 - #12 0x8052f76 in input () at acr.cc:2020 - - The bad thing here is that line #7 has mc=-1, and seekmonster() will use - that as an index. - -== 271. Could we tie this to smartitude? Killer Bees and other insects can - forget that I exist when they can't see me while Liches ought to - cast 'detect exact player loaction' and Dig or teleport their way - to me, for a LOOOOOOOONG time after I damage one. - -== 272. Cleaned up abyss generation; there was a monster leak and some very strange - code. - -== 273. Fixed minor screen redraw problem (screen should have updated before monsters' - turn, but it wasn't. Caused some odd SFX artifacts, like beams/missiles going - through walls) - -== 274. Fixed nasty bug with cornered monsters which had them looping from flee-> - cornered->seek->flee->... - -== 275. Fixed small logic error with perma-mutations - -== 276. I was invisible and an orc spotted me, shouted, and then came at me. - -== 277. gotta clean up monster target aquisition and release. Make more 'sensible' ->> Add 'persist' variable; which is # of turns a monster will go towards their ->> CURRENT target even if it is not in LOS anymore. - -== 278. Fixed type usage problem with quadrant_blink() - -== 279. Made monsters move a little more unpredictably along oblique paths - -== 280. Fixed up all cases I could find of friendly monsters frying players - (NOTE: they might still do so as part of calculated plans to help the player - out - some collateral damage is acceptable!) - -== 281. "The your cursed +1 robe is stuck to your body." - "You are a elf wizard." - -== 282. Can't pick a target with Apportation spell. - ->> works fine for me. Added a helpful message. - -== 283. It seems that sometimes monsters are not interested at you even if - you shout ("!") at them. Or is it feature ? - ->> nope, bug. Any noise coming from the player's position should alert ->> hostiles within range depending on the volume of the noise. - -== 284. Sometimes monsters (rats, bats and probably others) attacks you, - but they are still described as "not interested". - ->> fixed in direct.cc. - -== 285. I have also - made some changes to the file attributes when it is compiled with MULTIUSER - option turned on, since I think the player's save and level files should NOT - be group writeable :), but the score file should be. - ->> .sav and level files are private (600). Ghost and score files are not (664) - -== 286. There seems to be a more serious bug with summoning monsters in Crawl pr11: -: I`ve found that summoned creatures aren`t giving any experience to your -: character when they kill things any more, which makes summoners a bit crap. -: -: Also, when my Chaos Knight summoned a demon ( yquxy whatsit) it kept trying -: to eat my intelligence and mutate me, which has never happened before. -: Demons killing monsters didn`t give me any message from Makhleb either. - -Both fixed. #1 is logic problem, #2 is generic friendly fire problem. - -== 287. - I'm playing pr11, DOS version. My merfolk healer was in a situation like - this: - - ................. (water squares... - ..;;............. - ................. - ................. - ................. - ................. - ................. - ......;.......... water squares end) - ......@.......... this is solid ground - - The placing of the symbols is not accurate. - Now none of the eels could hit me with their blasts. The eel right next to - my character kept shooting straight upwards and the two eels farther away - kept missing me by my right side. At least one of them also hit the eel - right next to me. I killed the nearest eel, after which the other two just - kept missing me. My character was not invisible. - -: Also, it's not just electric eels. Storm dragons also tend to shoot in -: the exact opposite direction to the character. Looks to me like it might -: be a sign problem... - ->> ugh. bad side effect from tracer explosions. Fixed. - -== 288. Fixed whopper of a bug with generation of fast monsters which often hung - the game (especially in areas with lots of fast monsters, like the hive). - -== 289. Brent's balance patches - ->> applied all, reduced missile damages by 1 to compensate. Gave daggers ->> and spears better chances to hit. - -== 290. The "temporarily insulated" message is weak... it's kind of - confuing and looks a bit like a bug. Better would be a "god - protected you" message after the explosion... that would tell - both the source and the reason for the insulation. - ->> agreed. Changed to post-divine blast message. - -== 291. Hate to follow up to myself, but a small thing was brought to - my attention. Now that the dice for damage are one based, this - means that Magic Dart is now really the best first level spell, - this being because it uses the 3dX notation (ie dam > 100), so - it does a minimum of three damage (which isn't bad) and always - hits (which makes this too good for a spell which is very common). - - So I'm suggesting that the damage for Magic Dart be converted to: - - damage = 1 + (power / 2) (this is in it_use2.cc). - ->> changed to 1+pow/4. - -== 292. The third ability gained by followers of Zin is pestilence. This summons - a variety of bugs that hopefully will helpfully kill off whatever happens - to be bugging you. - - Trouble is, every time my character uses it at least one my little - chitinous friends gets killed. Zin doesn't like that, so my character - feels guilty. - - The same thing happens with the fifth ability, Summon Guardian, but - it's not so bad there. The summoned Angel (or Daeva, for fans of the - TSO) can generally take care of itself, although I did lose a Daeva to - a dragon once. Luckily it left behind a long sword of holy wrath to - assuage my guilt. - ->> add a flag to god-summoned critters so that their death doesn't cause ->> piety loss. Summoned friendlies will still give piety loss; the 'good' ->> gods don't appreciate you summoning beings as cannon fodder! - ->> tried to apply the god_gift flag wherever it made sense; Zin Pestilence ->> was the only place I could find. - -== 293. Finally found and fixed 'critters summoned out of LOS' bug. - -== 294. Fixed logic problem in quadrant_blink() - -== 295. Fixed buffer overflow in acr.cc during char dumps. - -== 296. Fixed minor display problem in backlight_monsters() - -== 297. Added Guus' -plain and doc patches - -== 298. CHMOD_PUBLIC now uses 664 instead of 666. - -xx 299. Actually, there was at least the comment from the newsgroup -about elven conjurors starting with the Ice/Air book (because -they're better at Air than Earth and equal in Fire and Ice). -The actual spells tend to lean a bit more to the Fire/Ice -side so I really don't see why they shouldn't have the choice -(or rather why anyone should have this auto-picked). Adding a -selection screen and an initfile option wouldn't be that hard. - -== 300. Change magic dart damage to 2+power/4 - -== 301. ->I'm wearing a ring of Shadows. When I try to take it off, it says -: >that it's stuck to me. When I 'v'iew it, it says that it has a curse -: >placed upon it. But it doesn't show up as cursed in my inventory -: >list, and scrolls of remove curse don't work. -: -: Oh... and if it helps at all: I killed a mummy at a certain point, -: with no apparent curse effect. This may be how the ring got cursed - ->> the check for randart rings was looking for 200, but the actual ->> inv_dam value for randart rings is 201. "Pluses2" of 100 is not ->> well defined in the code... :( - -== 302. Abyss go to shits after abyss_teleport() ->> wasn't setting terrain to DNGN_UNSEEN. Was using old (stupid) ->> value of 30 (white triangle!) - -== 303. In fact, they seem able to sneak right up to alert monsters and still -deliver the first blow. I think that such a blow should sometimes count -as a stabbing attack, just as blows delivered to fleeing or confused -monsters currently are. Currently such attacks have a - -random2(200) <= you.skills[SK_STABBING] + you.dex - -chance of being stabs. - ->>Gave chance if monster isn't paying attention to you (foe != MHITYOU), but ->>stab bonus is much lower (3) than stabbing a sleeping/fleeing monster. - -== 304. Not sure if you saw my big report on roguelike.misc, since it hasn't -: been fixed and doesn't seem to appear on the 'to do' list. The spell -: 'Lee's Rapid Deconstruction' doesn't do any damage at present. It -: occasionally destroys the wall which is targetted, but I detonated 20 -: walls next to a rat and didn't scratch it. This leaves Earth Mages -: without an area-effect damage spell, which is rather detrimental to -: their health :(. - ->> Fixed. Needed subtle wrinkle in explosion map, as well as some ->> fixes to the spell itself. - -== 305. Currently, if you skip the first naming screen but use the second -you can overwrite a previous game. Although this is unusual -behaviour, it's not very desirable, it should at least warn -about this and potentially give an option to load the old game. - ->> fixed. good catch. - -== 306. Wielding a bunch of stones and trying to throw one of them, -results in all of the stones being thrown (and potentially disappearing -as well). - ->> Very, very subtle bug in beam.cc inherited from original codebase. ->> Fixed. - -== 307. monster_move(monster); - // reevaluate behavior, since the monster's - // surroundings have changed (it moved) - handle_behavior(monster); - - Some monsters are getting killed on their move, and then the - code in handle_behavior() will fail an ASSERT since monster->type - will be -1. - -== 308. After one hit with a poison dart, "the goblin looks rather -more sickly". The non-"...more..." message is (repeatably) -never shown. - Josh PS: Could we consolidate the poison-effect-namespace to either -"ill" + "rather more ill" or "sickly" + "rather more sickly"? -I favor the former. - ->> oops. simple messaging problem. Similar prob. in sticky flame. - -== 309. Only one bug found - in newgame.cc (line 2222) should be used -strnicmp() instead of strncmpi(), because the second one isn't -existing function :) - -From BWR: ->Actually, we should probably avoid both, I don't think they're ->very stardard (BSDish systems will use "case" over "i"). ->strncmp() is POSIX (among others) so it's okay, but the case ->insensitive compare almost always causes problems (if we're going ->to use it, we should probably have it defined somewhere, so it ->can be adjusted or handled by autoconf (should we go that route)). - ->> correct - neither are POSIX. However it is being used in a DOS/win32 ->> section only, and strnicmp() is the proper call as Michael pointed out. - -== 310. I've looked at monster pronouns and IMO (supported by dictionary) - Erica and Frances should be female and Francis should be male. - - Probably also description of uniques could be slightly changed -according their gender, for example -Jessica - "An evil apprentice sorceress." - ->> done. - -== 311. -In either event, to get crawl to compile, the str<foo>cmp(x,y) == NULL -in initfile.cc needs to be changed to "...== 0". The line is near 520. - -== 312. Change shops back to old [0][5+i] item location. Leave items - carried (ie not on grid) at 0,0. Make sure to modify link_items(); - keep compatibility with old saved games. - -== 313. I think giving Ogre and Troll Fighters Dodging 2 is probably in order. - -== 314. Fleeing monsters were not taking advantage of the flexible movement - code (Guus) - -== 315. Gave monsters a little better chance of sniffing out foes (stealthy - players will fare better). After arriving at target x,y, will do a check - for continuing on via ESP/noise/whatever. - -== 316. Removed ability of monsters to see through walls. :) - -== 317. : Just tried casting Tukima's dance while wielding an artifact weapon. - : I get the message "You hear a popping sound." and although my artifact - : stays in my hand, something that looks like a Shadow appears. Its - : name: 36317738 iron wands. If you 'x' it and hit '?' it says "A - : dancing weapon floating in the air." just as if the spell had worked - : right. The thing even moves and attacks like a summoned monster, and - : seems to have combat stats of some sort, since it can kill things. - : When the spell expires, it says "The weapon drops from the air." as - : normal, but the monster just ceases to exist; it doesn't leave a copy - : of the weapon behind or anything. You can even summon several of - : these "36317738 iron wands." - ->> ugh, two separate logic problems in dancing_weapon(). Fixed. - -xx 318. I could be wrong, but I think that the Orcish Mines had no scrolls, - potions, wands, rings, or amulets. Very odd. But since Gordon just - rewrote dungeon.cc, we should wait for reports about pr13. - ->> this is working exactly as designed, if I read the original code correctly. - -== 319. But I failed in my casting too often, and the - buildup of mutagenic energy had some unfortunate effects. Even after I - gained some levels in Divination, and my Success chance was up to Fair, - I failed to successfully cast the spell sufficiently often that I mutated. - So be wary of casting even second level spells. - - from BWR: - We've have people getting mutations here from level one spells. - I'm thinking that at the very least we need to lower the baseline - for noticing that you're accumulating radiation... and possibly - put in some warning messages so people know that they're getting - a bit "hot" and that they need to take it easy for a while. - ->> messaging much better. toned down nastiness from low level spell failure. ->> made my easter egg much less abusable. - -== 321. I do wonder that Zin wasn't upset when I zapped the Angel initially. - ->> Zin is stupid and can't differentiate between a hurtful and helpful ->> spell. Perhaps a small subset could be classed as obviously harmful, ->> so that if you e.g. healed or hasted the daeve it wouldn't get pissed. ->> have to be done in beam.cc, I think... any non-enchantment would be ->> classified as harmful, I think. (?) Other enchantments would have to ->> go in a big if/switch. - ->> this will also help to NOT piss monsters off if you're trying to help ->> them. - -== 322. 2) Item clean-up in the dungeon seems far more - aggressive than before. I've dropped items, - popped down a staircase and right back up, - only to find everything I dropped gone, gone, - gone! This would be on "cleared" levels where - the likelihood of item overload is almost nil. - Is this a change in gameplay that I missed? In - pr13, I am finding myself holding onto *everything* - because I *know* that if I drop it and leave the - level it will simply disappear ... a PITA situation - for low-strength characters wanting to stash some - extra stuff for later. - ->> oops. Somehow broke item save/reload for any item dropped by player ->> or monster. Took closer look, cleaned up horrible hacky code. :P - -== 324. Make random zombie generation reflect the actual level; it is currently - random. - ->> no more horribly OOD zombies. - -== 325. Monsters with OFFENSIVE spells in mspell[2] will still use them - on the player (sigh..) - ->> fixed all cases in mon-spell.h - -== 326. Accidentally doubled the number of monsters created w/ level. - -== 327. : Scrolls of fear appear to be bugged. Read one, got messages saying - : that the monsters were frightened (ie, not "The blah resists."), but - : they kept moving towards me and attacking me. - -== 328. In pr12, my Troll could see an unseen horror. He was not wearing any - devices that could lend him see invisible, and orcish wizards were - turning invisible earlier in the game. - ->> oops. logic problem in mons_del_ench() - -== 329. Sigmund and other uniques appearing multiple times - ->> logic error in dungeon.cc - -== 330. Magical staves are described using the old style (speed) - -== 332. Monsters walk into clouds, except for intelligent ones?? Check code: -mannix writes: -Now here's an idea to which I can warm: stupid animals - thinking "where there's smoke, there's fire", and more - intelligent critters in possession of the ability to - discern betwen the two. - -== 333. Monster Placement: is there a place where, if you can't find a sensible - location for a monster in a group, you just put that one anywyere? - I think that's part of what makes monsters appear in LOS ... I just - got a gnoll and two orcs. - ->> stupid error in monplace.cc. Forgot that distance() function returns squared ->> values. - -== 334. Shapeshifters: one turned into a Swamp Worm. This ought not happen, - as those are water-only monsters, despite their worm designation. - ->> fixed. Won't let monster poly into water-based monster on land. - -== 335. dungeon.cc::pick_an_altar(): needs to have a case added, near line 5988: - case BRANCH_SLIME_PITS: - case BRANCH_ECUMENICAL_TEMPLE: //jmf: ADD THIS LINE - altar_type = DNGN_FLOOR; - break; - - ... to prevent "bonus" altars in the Temple. This was probably the - original author's bug (i.e.: mine). - -== 336. So the city-like dungeon code has some sort of an off-by-one error. - The "buildings" (squares with doors) once were separated by at least - one space of floor; no longer! Furthermore, they once didn't overlap. - - The changes provide much more interesting cities, however the door - generation hasn't quite caught up. I've seen things like: - - ######### - ####+...# - #####...# - #####...# - ######### - - ... where it's fairly obvious what went wrong. (I discovered these - types of things when playing a gnome.) - - The quick fix would be to restore the 'air' around buildings, but - IMHO that would be a loss. The new cities are so much cooler. - - A more complex fix would be in two steps: - - 1) make sure there's a passageway around the border of the level. - A single sweep setting all those squares to floor would be fine. - ->> tightened up door placement in box_room(); since both city_level() ->> and plan_4() use it, stuff works better now. - -== 337. - Sticky Flame puts monsters in the player's thrall - - This last one is really bizarre, because it doesn't happen - in the wizard mode compile (although I can take that character - over to the normal version and have it happen there). - - It's intestesting to note that these monsters end up with - enchantment number 30, which is one less than the sticky - flame enchantments... in the wizard mode they seem to get - enchantment number 60 (which is one less than the other - set of monster sticky flame enchantments... also known - as POISON_IV). I'm wondering if anyone else can verify - this. - - I suspect that there's some problems in the enchantment system, which - could be responsible for both of these. Looking at sticky flame today - it seems that my sticky flame ends up as ENCH_POISON_III or _IV - (59 or 60) regardless of playing crawl or wizcrawl. The in-thrall - thing seems to not be happening right now. It occurs to me that I - never actually got "burn" messages in pr12 when I was using napalm - (I hit an Ice Dragon about six times with it and it never seemed - to take any damage after the initial hit)... looking at the code now, - I'm pretty sure I should have been (and that any appearance of working - in the recent past might have in fact been delayed poisoning). - ->> Fixed. sticky_flame_monster() was badly broken. gawd I bunged that up. - -== 338. As a side note, I now backstab bats quick often (I take it that -this is a side effect of the new backstabing situtation). I'm -not really sure I should be able to do that (or more to the point, -does this mean I can expect regular backstabbing of ball lightning -and spatial vortices which might be a bigger problem). - -== 339. In Win32 pr13, if you set class = C in init.txt, your character will be a -priest ('c') instead of a wanderer ('C'). This happens regardless of if -your race allows wanderers. - ->> bug in initfile.cc - -== 340. Basically, nowdays if you turn a bat into an undead slave, -it suddenly comes to it's senses and becomes an inadvertant -killing machine (well against monsters that can't easily kill -it in one hit), as it walks straight up to them and hits them -3 or 4 times a round. Undead bats should still flutter around -(that's what keeps them in check considering their amazing speed). - -== 341. I've run into some surprisingly powerful ghosts in pr13. -They are only overly powerful in non-wizard compiles; the -two times I switched to a wizard-compile they acted normal. One -was casting MS_ENERGY_BOLT instead of either magic -dart or throw flame (the two spells that character knew). - ->> very bad indexing bug in ghost loading. Who knows what else ->> this was screwing up.. :P - -== 342. Some attempts to animate a skeleton result in a puff of smoke in addition -(I think) to a new slave. - -== 343. We've had several reports here about necromancers zombies and skeletons -actually getting poisoned from time to time by monsters. As far as -I can tell this really shouldn't be happening. - ->> probably a side-effect of messed up enchantment code. - -xx 344. If you start a game with -plain, Save, then continue the game without -plain, -then the displayed map for remembered locations uses the -plain characters. - -If you start a game without -plain, Save, then continue the game with -plain, -then the displayed map for remembered locations uses the extended characters. - -== 345. I haven't heard this one mentioned, but when wielding an ego item you -typically get this: - -d - an elven short sword (weapon in hand) -Wielding this short sword is a little awkward. -It softly glows with a divine radiance! - -The elven short sword should be id'd as "holy wrath" in the first line... -it was unid'd when I did this, so it looks like a simple case of moving -the identify code to a place before the printing. - -xx 346. Breathing fire via the mutation prints this unnecessary line: -" .\n" - -xx 347. I got a segfault when entering the abyss; wasn't playing under -gdb, for some reason, so didn't get a stackdump. Sorry. - -== 348. Brent's XP patches - -== 349. Josh's sludge elf, etc patches - -== 350. In mon_util.c::define_monsters(), there are some mystical values - assigned to m2_sec, some of which can be made more apparent by - using the appropriate MST_* values. - -== 351. Actually, a thought just occured to me that the new stabbing - code that gives occasional backstabs against flutterers, is - probably very annoying to Paladins. We might need at least an - additional check to prevent some of the excusable backstabs from - being naughty... perhaps it's just as simple as only making - attacks on fleeing, sleeping, and confused monsters call naughty - (in which case, it might be reasonable to remove the random - chance for TSO applying penance). - - One of the problems with confusion based stabbing is that some - monsters are created with it, and most of those probably shouldn't - be backstabable (various voritices, ball lightning, vapours). So - maybe we might need some way of distinguishing if the stab is - appropriate (or if not that, we should probably leave them off the - above list for naughtiness). - ->> new code to void backstabbing against flutterers (solely because ->> they are flutterers) and perma-confused critters (solely because ->> of confusion). - -== 352. in check_mons_magres(), the return value for the special "< 6" - bonus is backwards. I'm probably to blame for not noticing that - the function is logically backwards, I probably got confused by - one of the cases in spells4.cc which use this function backwards - (a few of which are my own). - -== 353. I added a "gotoxy( 18, 9 )" to the top of our direction function, - which nicely solved the porblem where the cursor was left at the - end of a prompt (ie for conjure flame). - -xx 354. We've had a report of skeletons picking up skeletons. - -xx 355. I've had several people reporting some oddness when returning - to a level via a straight up and down... things like monsters - completely disappearing and traps being created. - -== 356. pets seem to try and track the target monster even when they're - on the wrong level. Basically, if you go down stairs and tell - your pets to attack something and the go upstairs to try and - bring more pets down, the upstairs pets will be running around - wildly... going downstairs and killing the target made the - upstairs pets return to the master homing behaviour. - ->> simple fix. Set pet_target to MHITNOT on level change. - -== 357. The lastest in the bizarre happenings around here was a friendly - player ghost... wonderful entertainment as it would should out - things like "Run, I'll cover you" and such. - ->> always a possible problem; some fields were left uninitialized from ->> monster_cleanup(), and never initialized in the ghost code!! - -== 358. Removed digging ability from Disrupt() - -== 359. Added 'random' beam that affects each cell as one of { fire, - cold, magic, electricity, poison, negative energy, acid }. Only - used in my easter egg so far. - -== 360. Maybe we should instead be considering shifting the greater -vaults down to level 10+, and the lesser vaults to 7+ (there -are many more mini-vaults (and better quality these days, and -this does have the advantage removing dlev 4 guardian naga -encounters... we've had several). - -== 361. Okay, compiled it up and the only problem was that link_items() is -declared both static and extern (removed the static prototype). - -== 362. One other little problem: The magic resistance check for monsters -is now correct, but there are some inappropriate calls to it over -in spells4.cc (in particular Twist is currently unusable). - ->> reversed the logic.. this was just too non-intuitive and backwards. - -== 363. Move the Crawl.mcp file out of the source folder. - -== 364. Add "#define ESCAPE 0x1B" to defines.h - -== 365. In eat_food() in food.cc add some code before the "You don't have - any such object." case: - if (keyin == ESCAPE) - return; - -== 366. lava_spaces and water_spaces in builder_monsters() in dungeon.cc -aren't inited. (This looks like a nasty bug). -6) In quadrant_blink() in spells4.cc there's a line that reads "while -(!done && random2(100) < pow--);". Please move the semi-colon to its -own line. - -== 367. Snakes now flutter like bats did. They also display the "not interested -in you" message when e'x'amined. - - Josh: - I've had a batty frog and batty snake. Both had the old - 'not interested in you' inspection message. Most frogs - and snakes were not batty. - ->> oops. Monster->flags was not being set to 0 at monster creation. - -== 368. in monstuff.cc::handle_spell(), the CONFUSION && !vapour - should probably be changed to use M_CONFUSION to be generic. - -== 369. the contamination messages should probably be in the warning channel - -== 370. wizard's hats say they give AC, but they don't - -xx 371.Fireballs are rather larger than I remember. -Mana explosions from magic accumulation are the same size (very big). -I'm pretty sure the former is unintentional; is the latter? - -== 372. There's an illiterate "it's" in the description of Silence. The word -ought to be "its". (This is a peeve of mine. "We hate's them, ye's -presciou's!") - -beam.cc::2753 -- hearMsg = "You hear a gentle \'poof\'"; -+ hearMsg = "You hear a gentle \'poof\'."; - -== 373. I haven't seen any miscast effects except for the irradiation one. -I think this is due to a loop in spell.cc which tries to figure out -which school of miscast-effects applies to a given spell. The loop is -a bit past line 300 and seems to ignore the new 'bitmap' representation -of spell-schools. I know that miscast_effects is getting bogus sptyps. - -Full, real fix: -unsigned int sptype = 0; -do { - sptype = 1 << (random2(SPTYP_LAST_EXPONENT+1)); -} while (!spell_typematch(spc2, sptype)); - -== 374. -newgame.cc::3410 + if (you.species == SP_HILL_DWARF || -+ you.species == SP_MOUNTAIN_DWARF) -+ you.skills[SK_MACES_FLAILS] = 1; -+ else - you.skills[SK_SHORT_BLADES] = 1; - -== 375. Later in newgame.cc: Now that Sludge Elves suck at enchantments -and conjurations, we could remove the options for them to be Conjurers, -Reavers, Enchanters and Crusaders. - -** 376. Something is still deleting the ABJ_xx enchantment for summoned -monsters. Don't know what though. - -== 377. Fixed magic resistance of normal & small snakes. - -== 378. case CLOUD_POISON: - case CLOUD_POISON_MON: - if (mons_res_poison(monster->type) > 0) - continue; - if (monster->hit_points >= random2avg(37, 4)) - continue; - break; - -THIS IS WRONG VVV - - // dumb monsters can be fooled by smoke - if (mons_intel(monster->type) > I_ANIMAL || coinflip()) - continue; - - // this isn't harmful, but dumb critters might think so. - case CLOUD_GREY_SMOKE: - case CLOUD_GREY_SMOKE_MON: - if (mons_res_fire(monster->type) > 0 - || (monster->inv[MSLOT_ARMOUR] != NON_ITEM - && mitm.special[monster->inv[MSLOT_ARMOUR]] % 30 - == SPARM_FIRE_RESISTANCE)) - { - continue; - } - -== 379. Brent's 'friend-brand' patch - -== 380. Undead should *not* have morale failures, nor should the dumber ones avoid - flaming clouds of death (brown & white 'z's & 'Z's). Skeletal warriors - might avoid FCoD since they do make one other intelligent decision (wrt/ - casting their spell), but they ought never run away. - ->> who says running away is due to morale failure? ->> REALLY dumb (I_PLANT) creatures will now walk through harmful clouds. ->> this includes most of the shambling (mindless) undead - -== 381. quadrant_blink() from Brent -Brent Ross <bwross@c...> - - In this method, what we're going to try for is the best match, and - allow the number of choices to be based on power. The basic hope - is that while even high power characters have to put up with some - randomness, the diameter of the cone decreases making it more - reliable. - - let line = line segment extending out from player in the chosen dir - let best = NO_SQUARE - - for i = 1 to f(power) - targ = random nearby square - if (dist( targ, line ) < dist( best, line)) then - best = targ - else if (dist( targ, line ) == dist( best, line )) then - // Not really sure we want this part, maybe we should throw in - // a random to keep the distance sane. - if (dist( targ, player ) > dist( best, player )) then - best = targ - endif - endif - endfor - - if (best == NO_SQUARE) - mpr( "teleport control screwed up" ) - random_blink - else - player = best - endif - -== 382. De-twink wanderers - ->> undefined USE_SPELLCASTER_AND_RANGER_WANDERER_TEMPLATES until we have ->> "hedge" magic. - -== 383. Check that all spell books are listed for generation.. at least war chants - is missing. - -== 384. Add "Blowgun" (launcher) and "needle" (ammo) -: basically, go through all code looking for BOW, add blowgun -: go through all code looking for ARROW, add needle -: assassins now start w/ blowgun & needles - except for deep elves; they get hand xbows since they tend to - suck at HTH and will rely more on ranged damage. -: some chance for needles of Foo? (dungeon.cc) just poisoned -: some chance for blowguns of Foo? (dungeon.cc) of venom -: must remember to add in to item generation tables. :) -: change throw_it() so that blowguns and thrown darts are - very quiet; all others make a noise - check fight.cc for - a good noise value. Note that alert() is simply not called. -: give a couple monsters blowguns & needles to start -: needles get damaged far less often (but make them rarer; - maybe only carried by assassinish-monsters. -: Needle trap at higher levels; could be a source of needles? - -TODO: dungeon.cc::give_item() . which monsters have bguns/needles? -other files not searched for WPN_BOW and MI_ARROW (our template for -this stuff): - -== 385. fixed logic problem in cast_sandblast() - -== 386. If I cast a fire spell at something in the water, it leaves a trail of -steam behind it. A fireball should have the same effect (but of course -over a larger area) - -== 387. Josh' new diff (mostly Xom acts) - -== 388. A Skeletal Warrior just drank a potion of healing. This strikes me as -wrong, from both pseudo-physiological and gameplay perspectives. - -== 389. I saw hellwing which polymorphed jackal to lava fish. Probably -this is not bug but we should consider this. - -== 390. We've had -someone complain here about his Ogre not being able to wear one. -I thought we had decided that caps and wizard hats were wearable -by all characters, regardless of headsize or horns. -Anyone remember? - ->> there's a comment in item_use about caps & wiz hats being ->> wearable by anyone "unless their head is too big (ogres, etc)" - -== 391. I've found a number of eggplants in pr15, err, 4.1.15 - (these were supposed to be MI_NEEDLE.. what happened!?) - -== 392. -I made it to the Abyss... Now I'm stuck in this loop in -dungeon::define_zombie(): while(true) - { - // this limit can be updated if mons->number goes >8 bits.. - test = random2(182); // not guaranteed to be valid, so.. - cls = mons_charclass(test); - if (cls == MONS_PROGRAM_BUG || mons_rarity(cls) == 0) - continue; - ->> VERY tricky to fix correctly.. no wonder it was never done. - -(which monsters to allow as zombies in the abyss?) - -BWR: -Or perhaps just picks with the base level set as high as -possible... which will allow for Zombie Titans (which are high -enough level that they're never "naturally" generated, I believ - -Well simulacrums are out right away. They don't appear naturally -anywhere, due to the fact they sublimate away. On a similar note, -ball lightning shouldn't be generated anywhere, but I believe I -accidentally put them in the Realm of Zot... short lived creatures -should have to be summoned in. As for zombie/skeletons or even spectres (which I don't believe -are generated anywhere.... Spectral Warriors are generated, -but they're like Skeletal Dragons in that they're completely -different... don't think I've ever seen a Spectral "Thing" -in any dungeon, at least not one I didn't create myself) are -probably okay in the abyss... there are things like abominations, -necrophages, skeletal dragons/warriors there already. Spectres -might also be interesting in the Realm of Zot. - -== 393. Oh, dear. I think I might have left in a debugging bit that changes _all_ -generated traps to needle traps - they're supposed to be fairly rare, and only -seen below level 3! - -== 394. It looks like the logic in poison_monster() needs adjusting, too, if you're -getting credit for monsters done in by the poison from needle traps. Ah well. - -== 395. // * fixed: magical staves now described with new speed - -Actually, there's still one problem here. The '%' needs to be doubled, -since the description string will eventually be fired through cprintf()... -it currently gets dropped in both cases (weapon and stave). - -xx 396. An eloquent method of handling this would be to 'queue' shouting messages -between character actions and conflating multiple shouts into a single -message ("Several <foo>s shout" or whatever), possibly conflating by -monster type ("Several <foo>s shout out! A <bar> yelps!") so that the -player can be alerted to unique shouts and/or get the *flavor* of all -the various bellowing beasties. - -== 397. Make zombie monsters appear a few levels (3-4?) earlier than their non-zombie -counterparts - -== 398. -> I was blowing needles at an orc wizard, and he very politely gathered -> all the needles up for me. I appreciated him doing that rather than -> casting those nasty spells at me. :) - -Now, I thought that logic had been fixed (at least, in the case -of darts) such that monsters with potent HTH or spell attacks would -not lower themselves to gather scattered items for characters :P - ->> fixed better. Monsters won't pick up if there's not much there, they're ->> not wandering, and they already have ammo. Fleeing monsters never stop ->> to pick up ammo. - -== 399. Needle traps will poison the player even if he or she resists poison. - -xx 400. Some first level spells won't allow the player to target him- or herself. -This means that a player can't use those spells to see if he or she -resists their damage type. Knowing if one resists a damage type is useful -when trying on mysterious rings. - ->> need some restructuring to do this; burn_freeze() isn't set up to ->> actually affect the player. :P - -== 401. Personally, -I think Ijyb should probably get an XP modifier of 5 (and even -then is still worth 40 xp) - -== 403. -I think some kind of notice should be given, when body wich is carried -becomes rottens. And ghouls should definetly be able to see when -chunks of meat become rotten. As should everyone else, I think. - ->>mv: added appropriate messages - - -== 404. My Draconian monk (not so difficult as you might think) got mangled -by a goblin with seemingly limitless ammount of scrolls of summoning. -He summoned like 5-7 abdominations before my monk got killed. And -this was at level 2. Extremely bad luck or bug? - -== 405. Crash in pr14 -This occurred in the Realm of Zot, while attacking an Orb of Fire, which had -just exploded. - ->> very nasty. Fleeing monsters with "emergency" spells requiring tracers ->> would crash the game. - -xx 406. -When using Stone Skin with Dragonian it says "Your skin feels harder" -and "Your skin feels tender" instead of "Your scales feel harder" and -"You scales feel softer". - ->> These guys still have skin underneath all those scales.. - -== 407. Fix quadrant blink again: -Which gives us the one-step formula: - - dist = abs( (y - you.y_pos) * (tx - you.x_pos) - - (x - you.x_pos) * (ty - you.y_pos) ) / s - - where (x,y) is the player's targeted square/vector, - (tx,ty) is the spell's targeted square, - (you.x_pos, you.y_pos) is the player's position, - - and s is the distance between (x,y) and (you.x_pos, you.y_pos). - - - The important thing to notice here is that s is constant for all - of the trials (one or root-2), and since we don't care about - an accurate measurement (only a relative one between trials), - we can reduce it to one - -== 408. Although, 'f' does fire needles correctly, the ')' command doesn't - actually show that this is the case (see command.cc::list_weapons()). - -== 409. Poisoned needle gives messages in bad order. Patch from Guus. - -== 410. > I just noticed that my character has a Dex of 63. I've chosen every - > ability increase to be in dex, and he occasionally wields an artefact - > dagger that is +3 to dex. I don't think it relates to save files, - > as I haven't saved the game in three days. - - The stat growth is caused by autobutchering when the butchering weapon - has a stat bonus. I get the stat bonus when I wield the weapon, but do - not relinquish the bonus when I unwield it. - ->> ewww. this was ugly. - -xx 411. I was playing a Spriggan Transmuter when i entered the mines. I was - overwhelmed by +10 Orcs so i went back up. One orc followed me. I - then started running away until i was several spaces away, turned and - cast disrupt killing the orc. As the orc died the stairs to the - mines disappeared. - ->> can't reproduce. - -== 412. I've been trying out Chaos Knights and the critters that Xom summons - for you have this annoying habit of polymorphing the bad guys to - *way* OOD monsters. For example, my last knight was level 3 and is - listed at -19/28 HPs in the morgue file. This was one spell and he - was at full health when it happened. Although this was before the - latest patch so perhaps it's related to the other OOD problems. - -== 413. >I've seen that disorder message a few times too. The first time the - >game hung when I tried to go back up to that level. After that I - >avoided loading those levels again. :-) There really needs to be - >better sanity checking here. It's not right that a bad level can be - >generated and only found when the player stumbles across a bad pile - >of items. - - From what I can remember, this kind of thing is almost - certainly the result of bugs in either the monster inventory - code or the code responsible for placing monster corpses on - death. The behaviour where the player picks up an item and - it doesn't get listed in the inventory tended to be caused - by the existence of a link to an item with a quantity of 0 - (this also causes "a scrolls labelled SDFKLSFD" - when the - quantity is zero it puts an 's' on 'scroll' but leaves the 'a' - in front). - -== 414. Characters cannot exercise fighting, weapon, or unarmed combat skills - against plants/fungi, so perhaps they shouldn't exercise stabbing. - And plants/fungi should probably always appear disinterested. - - This assassin has also been paralyzing monsters, but can't seem to stab - one afterwards. - -== 415. My assassin carefully approached his victim: - - Move the cursor around to observe a square. - Press '?' for a monster description. - A plant. - It doesn't appear to be interested in you. - Floor. - ->> obviously need some kind of data-driven thingie here for stabbing / paying ->> attention. - -== 416. I fire a "Disrupt" at a worm just off screen (as I'm running away): - - You kill the worm! - Nothing appears to happen. - -== 417. He was standing on a down stairwell. He had full view of each of the - adjacent squares, but not all of distance 2 squares. He was at a little - over half his hp, and I hit '5' to rest and recover. - - Suddenly there was a bellow, and a hydra was beside him. The hydra - proceeded to lay the smack down, slaying the poor assassin. I guess - it's poetic justice, since the assassin slew quite a few monsters - by suddenly appearing beside them, fiery blade in hand. - ->> almost definitely a result of the new 'near stairs' code. Needs some ->> refinement, I suppose. (evil grin) - - -== 418. Elyvilon got upset when a needle trap killed a monster just after - I had prayed. :) - - -== 419. Over the course of the game I obtained around a dozen blowguns and only - one crossbow, so they may be too numerous. - - (most blowguns came from the ground) - -== 420. Two minor quibbles on spell descriptions. - - a) Unlike the other brand weapon spell dscriptionss, the Poison Weapon - spell description does not mention that the spell won't work on - branded weapons. - - b) The description of the Disrupt spell says that the spell "disrupts the - matter of another creature's body", but the spell also affects - creatures with non-material bodies. - -== 421. Fixed formatting problem with randart descriptions - -== 422. Changed slaying to be a little less powerful. - -== 423. Butchering with bare hands and a short blade in slot a doesn't -switch back to bare hands. (Naturally, I'm using the experimental -auto switch when butchering -setting.) - -== 424. mons_speed() should be extern, remove static declaration from mon-util. - -** 425. I have a ring of Baldness that somehow got cursed and now I am -stuck with it. Scrolls of remove curse have no effect. -Its not bad ring, but the increased metabolism isn't nice. - -== 426. More inventory problems: -while playing 4.0.0b16 I found two bugs: -1) when picking up items from the floor, after picking them up - it says "no -more items" (but it picks up the item). This bug is strange it happens only -at the very beginning of the game. For some reason after descending to Level -2 it has stopped from happening. - -2) picking up items from the same type: when you have say 2-chokos and there -is on the floor another one then when you stand on top of it - it says -3-chokos(it takes into account the ones you have in your inventory). Or the -other solution is that when you pickit up from the floor it replaces your -previous chokos with the last amount of that type picked up. (Because I had -2 chokos and after picking 3 chokos = I got 3, so it could be either -problem...dunno) - -== 427. Fix descrip. for rings of slaying. - -== 428. I met monsters with infinite potions. I hope it's also fixed. - -== 429. - in monstuff.cc::handle_nearby_ability() should be also handled - monsters behaviour - BEH_WANDER and BEH_SEEK, beacuse monsters speak - even if they don't know about player. Also it looks that Giant - eyeball can stare at player even if he isn't noticed (or if he is - invisible, but it's probably feature) - -== 430. Michal's patch (new unrands?) - >> mv: now included - not only unrands but mainly clean-ups and minor upgrades - -== 431. In view.cc:viewwindow2() was buffy changed from unsigned char to - unsigned short (I'm talking about - FixedVector <unsigned char, BUFFER_SIZE> buffy). - But at least with my compiler it doesn't work and viewwindow2() - doesn't show anything (only black screen). When I changed buffy back - to unsigned char it started to work again. - -== 432. Giant eyeballs no longer stare at friends. - -== 433. You throw a dart. - You throw a dart. - You throw a poisoned orcish dart. - You shoot a poisoned needle. - You shoot a poisoned needle. - You hear a grinding noise. - - ... with a dex 18 / darts 7 / throwing 4 player! - This is repeatable, and at times, I managed to - clear a rock wall with just two needles!!! Couple - this with the durability of needles, and players - have a poor-man's dig spell at their disposal. - -== 434. -I think I will change this condition so that a - monster with no ammo won't bother picking any up, - unless their melee attack really sucks. - -== 435. - You destroy the shapeshifter zombie! - - I sneak up on a defenseless cockroach and crush it with - my quarterstaff, only to be messaged that my character's - stabbing skill has increased. Is is just me, or does the - idea of stabbing with a quarterstaff seem a bit off? I - weakly suggest changing the name of the skill to something - less tied to impaling weapon types. "Ambush" skill or - "Bushwhack" skill or something similar. - ->> no more shapeshifter zombies. Improved messaging for stabbing. - -** 436. - - - Hi, - - Could you add a description of the / and * keys to the help screen? Keypad is - not always useable, especially not with ctrl and shift keys, this might help - some people. Patch attached. - - -== 437. - Note the extra space before the period: - - Methea's ghost stares at you . You feel cold. - - - This is a common construction used (I presume) - in mon_speak() [or whatever]. There should be - a comma placed after the verb ['begs' in this - case] for grammar's sake: - - Methea's ghost begs "Please don't hurt me!" - -== 439. - Package: crawl - Version: 1:4.0.0beta16-1 - Severity: minor - - Another small upstream gameplay issue. In the context of a rat I had - summoned attacking a kobold which was wielding a poisoned dagger: - - The rat hits the kobold. - The rat hits the kobold! - The kobold hits the rat with a runed dagger! - The rat looks ill. - You kill the rat! - That felt strangely unrewarding. - The rat's corpse disappears in a puff of smoke! - - The rat was killed by the kobold (via poison), not by me, but the messages - seem to indicate I killed it. - - This may be very tricky to reproduce, unfortunately :( - -== 440. -> * removed: no more spellcasting wanderers, until such time as we -> have some reasonable "hedge magic", which I will not add before -> release. - - A healthy percentage of my wanderers still start out with magic - skills. - - >> but not spells. - - -== 442. Repel undead doesn't seem to actually repel the undead. - - >> mv: fixed - -== 443. The enslaved stay enslaved even when you attack them. - -== 444. Change 'points' to 'point' if points needed == 1 in 'C' message - -== 445. -This is me and a summoned zombie vs. a goblin: - - You miss the goblin. - The goblin hits you with a club! - The giant cockroach zombie misses the goblin. - The goblin fails to defend itself. - You kill the goblin! - ->> very possible. Goblin was concentrating on the cockroach (lucky -you!) - -== 446. Add ???'s patch for FreeBSD support - -== 447. Zombie generation hangs in the various hells, the crypt, and probably - slime pits, ecu. temple, and others. - - >> think I got all cases of levels with no zombifiable native life. - -== 448. Monster polymorph can hang in HoB: - >> only valid monster for poly in HoB is Dancing weapon, which is EXPLICITLY - NOT a valid poly target. So it hangs. Duh! - -== 449. Shapeshifters no longer gain the extra abilities (spells, specials) - of their forms (they used to - I considered this a bug). - -== 450. Incredibly, monster enchantments were not being reset when a new level - was generated. This is an absolute showstopper and has probably corrupted all - games in progess. Most notable with permanent enchantments like shapeshifter - - this is what caused the "shapeshifter" dancing weapons that Josh (indirectly) - reported. - -** 451. As you read the scroll, it crumbles to dust. -Your club glows black for a moment. -Drop which item? -You drop a +0 dwarven hand axe. -You are empty-handed. - --- 452. -I hit an assert failure after reading a scroll of curse armour. From the -traceback, we see an immediate problem at the call to itemname::in_name() -at line 3358 of item_use.cc. The object to be named is -1. -#6 0x80b1797 in in_name (inn=-1, des=4 '\004', - str_pass=0x825b9a0 "a +1,+0 elven long sword") at itemname.cc:69 -#7 0x80b125b in read_scroll () at item_use.cc:3358 -#8 0x8050e2d in input () at acr.cc:880 - -Doing a quick compare between the pr16 & pr17 code, I think this line: - ok_to_curse[i] == (you.equip[i] != -1 - && you.inv_plus[you.equip[i]] < 130); - -should be: - ok_to_curse[i] = (you.equip[i] != -1 - && you.inv_plus[you.equip[i]] <= 130); - -** 453. -DOS, 486sx -4.1.16 Floating above a (dart) trap discovers it but gives no message. - - I'd like to see a message when Coronas wear out. - - >> mv: added - -4.1.17 Loading the game; Okawaru says: Welcome, disciple. - -A monster called "a human" was displayed as a darker (non-visible) - floor tile. - - >> mv: fixed - - -** 454 .Goblins and orcs still get infinite potions of healing?? - -** 455. I'm playing Crawl pr17 (I double-checked this time) under Solaris, and I just -got the "Too many items" bug with a minotaur monk. It had to do with a -cursed runed leather armor that I was carrying. I had a bunch of stuff in -my inventory, and read a scroll of detect curse (this is how I discovered -that the armor was cursed). So I dropped the armor and moved to another -spot. There I dropped some weapons that I wasn't interested in. I stepped -back to this spot later, there's a cursed runed leather armor. There's also -a cursed runed leather armor on the spot where I actually dropped it. I -picked one up and dropped in on the other, looked, and "Too many items." The -game hung when I tried to save. :^/ - -** 456. I was playing the same minotaur monk (I was able to salvage the game) when I -saw what I thought was a statue (an '8'). When I looked at it, I saw: - -You see 26 !questionable item (c100,t0,p0,p(2)0,d0:q26)s here. - -** 457. -I was wandering along when I met a hobgoblin. I kill him and decide to pick -up his weapon to see if it's good. I then get "do you want to pick up -hobgoblin corpse (y/n/a/q)"(or something like that). I type no. "do you -want to pick up hobgoblin corpse" No. "do you want... " no ad nauseum. I -give up and press q the game crashes. I restart and load the autosave. -Same thing happens. I this time press a and get -x - a hobgoblin corpse -x - a hobgoblin corpse -x - a hobgoblin corpse etc -It won't stop doing that - -Yours - -William Hull - -Another one: -at another time there was this situation: - -### -@g! the potion is yellow -### - -### -@!! after killing the goblin,a second yellow potion appeared -### - -but walking over both just gave me the msg "m - a yellow potion" twice. -afterwards i had just one yellow potion in my pack. - -(more) - -The item bug (duplicate items and potential lockup) seems to happen whenever -a monster picks something up off the floor. The most recent incident is -typical (at least in my games). - - - #'#### - #! - # ### - #K# - # - <@ ### - -Near the door is an emulsified red potion. After I kill the kobold (who had -previously been wandering around, i.e. he wasn't asleep), I find that he was -carrying an emulsifed red potion. Coincidence? I think not. In this -instance, I left the potion where it was sitting and checked out the potion -near the door. Underneath the potion is a kobold corpse. I go up the stairs -to the previous level, then return; the corpse and potion near the door are -gone. From previous experience, I know that picking up both potions/corpses -would have left me with just one potion/corpse in my inventory (assuming I -didn't have any before), and picking up one potion/corpse and dropping it -on top of the other potion/corpse will create the "Too many items" bug, and -cause the game to hang when saving the level. - -(more) - -Sorry to follow up on my own post, but I was browsing through the sources and -I noticed that in pickup() in items.cc, relink_cells() is called after the -player successfully picks up an item off of the floor. No such function is -called in handle_pickup() in monstuff.cc. Perhaps handle_pickup() should -call relink_cells() (which we know works) instead of trying to update the -igrd array itself. - - --- 458. My char with some stabbing skill stabbed a mimic wich was nerly dead -after many rounds of battle. I know there is bonus when attacking a -fleeing moster, but mimics cannot flee. - ->> fixed. Immobile monsters cannot flee. - -** 459. An artifact weapon of holy wrath does allow a demonspawn to wield it, wich -is bug or maybe not. - -** 460. ..to Sif Muna, so I went back to the Temple and converted. Little did I know -that Vehumet would hold a grudge. I survived a blue demon, an abomination, -and several magical blasts, but Vehumet eventually blasted me when I was low -on HP and did me in. *sigh* - -Anyway, here's the buglet: the high score list claims that my character was -killed by bad targeting. - --- 461. There is another one in monstuff.cc in handle_scroll when checking for -negative numbers of scrolls... -And yes it would be cool if they removed all the warnings (or at least -most of them). Removing unused variables would be a first step. - ->> - -** 462. In the dos binary of Crawl 17, when running the game with "crawl -plain" -option, the game screen is totally black. I still get the player statistics -and messages, but the map display that you normally see is blacked out. - -This is bad because the normal crawl display (without -plain) is a bit buggy -for me. (no cursor under the character). I also kinda prefer the # -character for walls (got used to ADOM) :) - -xx 463. Beam tracers: tweak to take into account what might happen if they _miss_. - -** 464. Level draining can cause -1/-1 -magic when used against ogre (or maybe -troll) character. - -== 465. Automatic weapon change when dissectiong gives a litle funny messages when -berserk: -Switching to your swap slot weapon. -You are too berserk! -Maybe you should try using a sharper implement. -Switching back to a - the uncursed great mace "Res". - - >> mv: fixed - -xx 466. My deep elf summoner cast summon demon from a staff of summoning (A -great item for a starting summoner.), and received an orange demon, -which proceded to attack me. None of the other demons had attacked. Is -this a bug, or is there some way to make demons hostile? - ->> 1 in 4 chance of hostile demon. - --- 467. Ettins have no description. I just met an elf and I think those should only -appear as corpses. It had description "A monster whose description has yet -to be written.". - - -== 468. Invalid polymorph targets (this has been reported several times). - There are several generic monster types which are _not_ valid poly. - targets: 'human' and 'elf' being two of the more common results when - polymorphing stuff. And yet, 'human' should probably be given some - generic statistics and then allowed as a target (it makes sense, after - all). - ->> mv: fixed now |