Anonymous | Login | 2024-03-28 16:41 CET |
Main | My View | View Issues | Change Log | Wiki | Tavern | News |
Viewing Issue Simple Details [ Jump to Notes ] [ Wiki ] | [ View Advanced ] [ Issue History ] [ Print ] | ||||||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||||||
0003309 | [DCSS] Bug Report | crash | random | 2011-01-27 20:01 | 2011-01-28 06:48 | ||||||||
Reporter | valrus | View Status | public | ||||||||||
Assigned To | KiloByte | ||||||||||||
Priority | normal | Resolution | done | ||||||||||
Status | resolved | Product Branch | 0.8 ancient branch | ||||||||||
Summary | 0003309: Skeleton warrior raising corpse while Vp drinks, resulting in failed assert | ||||||||||||
Description |
The game is apparently attempting to skeletonize a corpse that is no longer there. The error message is: ASSERT(item.base_type == OBJ_CORPSES && item.sub_type == CORPSE_BODY) in 'misc.cc' at line 150 failed. I have attached the crash log, but see the last few messages: Drink blood from an elf corpse? (ye/n/q/i?) This warm blood tastes magically delicious! You feel somewhat less thirsty. Your skeletal warrior gestures at the surrounding area while chanting. The dead are walking! You continue drinking. You finish drinking. I will probably just start trying to fix this myself. |
||||||||||||
Additional Information | |||||||||||||
Tags | No tags attached. | ||||||||||||
Attached Files |
crash-valrus-20110127-184753.txt [^] (45,610 bytes) 2011-01-27 20:01 [Show Content] [Hide Content]ASSERT(item.base_type == OBJ_CORPSES && item.sub_type == CORPSE_BODY) in 'misc.cc' at line 150 failed. Version: Dungeon Crawl Stone Soup 0.8.0-a0-4825-gd568884 Platform: unix Bits: 64 Game mode: normal Tiles: no Command line: /bin/crawl-svn-d568884 -name valrus -rc /dgldir/rcfiles/crawl-svn/valrus.rc -macro /dgldir/rcfiles/crawl-svn/valrus.macro -morgue /crawl-svn/morgue/valrus RC options: restart_after_game = false Crash caused by signal #6: Aborted Obtained 15 stack frames. /bin/crawl-svn-d568884(_Z17write_stack_traceP8_IO_FILEi+0x27) [0x96c757]: write_stack_trace(_IO_FILE*, int) /bin/crawl-svn-d568884(_Z13do_crash_dumpv+0x28e) [0x531fce]: do_crash_dump() /bin/crawl-svn-d568884 [0x96c9c7] /lib/libc.so.6 [0x7f86c6198f60] /lib/libc.so.6(gsignal+0x35) [0x7f86c6198ed5]: /lib/libc.so.6(abort+0x183) [0x7f86c619a3f3]: /bin/crawl-svn-d568884 [0x530944] /bin/crawl-svn-d568884 [0x73305e] /bin/crawl-svn-d568884 [0x54721e] /bin/crawl-svn-d568884(_Z12handle_delayv+0x1f5) [0x5482b5]: handle_delay() /bin/crawl-svn-d568884 [0x6dec45] /bin/crawl-svn-d568884 [0x6e1e75] /bin/crawl-svn-d568884(main+0x2a1) [0x6e2631]: /lib/libc.so.6(__libc_start_main+0xe6) [0x7f86c61851a6]: /bin/crawl-svn-d568884(_ZNSt8ios_base4InitD1Ev+0x51) [0x4aef29]: std::ios_base::Init::~Init() Compilation info: <<<<<<<<<<< Compiled with GCC 4.3.2 on Jan 26 2011 at 23:40:32 Compiled on OS: Linux 2.6.26-2-vserver-amd64 Compiled on machine type: x86_64 Compiled on processor type: unknown CLFAGS: -O2 -pipe -Wall -Wundef -Wno-array-bounds -Wno-parentheses -Wwrite-strings -Wshadow -D_FORTIFY_SOURCE=0 -Wuninitialized -Icontrib/install/include -Iutil -I. -I/usr/include -I/usr/include/ncursesw -g -DWIZARD -DASSERTS -DREGEX_PCRE -DCLUA_BINDINGS -DDGAMELAUNCH -DSAVE_DIR_PATH="/crawl-svn-d568884/saves" -DDATA_DIR_PATH="/crawl-svn-d568884/" -DUNICODE_GLYPHS LDFLAGS: -rdynamic -O2 >>>>>>>>>>> Place info: absdepth0 = 10, branch = 3, level_type = 0, type_name = Level id: Elf:2 level build method = plan_main plan_2 level layout type = cross Level extras: serial_shops [1]: (62,4) (0,0) orient: 10 lev: 10 shop [2]: (32,62) (1,1) orient: 10 lev: 10 shop [3]: (15,34) (1,1) orient: 10 lev: 10 shop [4]: (26,30) (1,1) orient: 10 lev: 10 shop [5]: (42,40) (1,1) orient: 10 lev: 10 shop [6]: (27,52) (1,1) orient: 10 lev: 10 Level vaults: layout_cross [1]: (0,0) (80,70) orient: 9 lev: 10 statue_cache [2]: (64,25) (16,19) orient: 3 lev: 10 uniq_donald [5]: (39,59) (1,1) orient: 10 lev: 10 uniq_erolcha [4]: (43,18) (1,1) orient: 10 lev: 10 uniq_grum [3]: (62,24) (1,1) orient: 10 lev: 10 Markers: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Messages: <<<<<<<<<<<<<<<<<<<<<< The sixfirhy is lightly wounded. The sixfirhy closely misses you. The sixfirhy hits you but does no damage. The sixfirhy barely misses you. You block the sixfirhy's attack. You closely miss the sixfirhy. You barely miss the sixfirhy. Your bite misses the sixfirhy. The sixfirhy hits you. The sixfirhy shocks you. You block the sixfirhy's attack. The sixfirhy hits you but does no damage. You puncture the sixfirhy! The sixfirhy is moderately wounded. The sixfirhy hits you! The sixfirhy shocks you. You closely miss the sixfirhy. The sixfirhy closely misses you. You block the sixfirhy's attack. You impale the sixfirhy!! Your bite misses the sixfirhy. The sixfirhy is heavily wounded. The sixfirhy hits you. The sixfirhy shocks you. The sixfirhy hits you but does no damage. You puncture the sixfirhy! You kill the sixfirhy! You start resting. You start to feel a little slower. Found four items. A wizard statue comes into view. Use which ability? (? or * to list) Draw from which deck? (? for menu, Esc to quit) You draw a card... It is the Herd. What do you say? t - Shout! Orders for allies: a - Attack new target. s - Stop attacking. w - Wait here. f - Follow me. Anything else - Stay silent. Gang up on whom? Press: ? - help, Dir - move target cursor, f - wizard statue Aim: A wizard statue (resting) Attack! You feel sluggish. Unknown command. Found a papyrus book and 60 gold pieces. Your grizzly bear bites the wizard statue. Your grizzly bear claws the wizard statue but does no damage. Your grizzly bear claws the wizard statue. Your grizzly bear bites the wizard statue but does no damage. Your grizzly bear claws the wizard statue. Your grizzly bear claws the wizard statue but does no damage. A wizard statue comes into view. You swap places. Your grizzly bear bites the wizard statue but does no damage. Your grizzly bear claws the wizard statue. The wizard statue throws cold at you. The freezing blast misses you. The wizard statue is engulfed in freezing vapours. Unknown command. Unknown command. Casting: Swiftness Confirm with . or Enter, or press ? or * to list all spells. Your grizzly bear is recalled. You are engulfed in freezing vapours. You resist. One of your 3 potions of heal wounds freezes and shatters! One of your 6 potions of healing freezes and shatters! Your grizzly bear is engulfed in freezing vapours. Your grizzly bear bites the wizard statue. Your grizzly bear barely misses the wizard statue. Your grizzly bear claws the wizard statue but does no damage. The wizard statue is engulfed in freezing vapours. Unknown command. Unknown command. Unknown command. You are engulfed in freezing vapours. You resist. One of your 4 potions of might freezes and shatters! Your grizzly bear is engulfed in freezing vapours. Your grizzly bear bites the wizard statue. Your grizzly bear claws the wizard statue but does no damage. Your grizzly bear barely misses the wizard statue. Your grizzly bear is engulfed in freezing vapours. Your grizzly bear bites the wizard statue but does no damage. Your grizzly bear claws the wizard statue but does no damage. Your grizzly bear claws the wizard statue. The wizard statue is engulfed in freezing vapours. The wizard statue throws energy at you. The orb of energy hits you! Casting: Recall Confirm with . or Enter, or press ? or * to list all spells. You blink. Your grizzly bear is engulfed in freezing vapours. Your grizzly bear bites the wizard statue but does no damage. Your grizzly bear claws the wizard statue. Your grizzly bear bites the wizard statue. Your grizzly bear claws the wizard statue. Your grizzly bear claws the wizard statue but does no damage. Your grizzly bear bites the wizard statue. Your grizzly bear claws the wizard statue but does no damage. Your grizzly bear is engulfed in freezing vapours. Your grizzly bear bites the wizard statue but does no damage. Your grizzly bear claws the wizard statue but does no damage. The wizard statue is engulfed in freezing vapours. Unknown command. Unknown command. Unknown command. Use which ability? (? or * to list) Draw from which deck? (? for menu, Esc to quit) You draw a card... It is the Herd. Nemelex Xobeh grants you a gift! Something appears at your feet! Your grizzly bear is engulfed in freezing vapours. Your grizzly bear returns to your side! Your grizzly bear goes berserk! Your grizzly bear bites the wizard statue. Your grizzly bear claws the wizard statue but does no damage. Your grizzly bear claws the wizard statue. Your grizzly bear bites the wizard statue but does no damage. Your grizzly bear claws the wizard statue but does no damage. Your grizzly bear claws the wizard statue. Your grizzly bear bites the wizard statue. Your grizzly bear claws the wizard statue but does no damage. The wizard statue throws noxious fumes at you. The ball explodes into a vile cloud! The stinking cloud engulfs your black bear. The stinking cloud engulfs the wizard statue. The stinking cloud engulfs your grizzly bear. Unknown command. Unknown command. Unknown command. Unknown command. Casting: Blink Confirm with . or Enter, or press ? or * to list all spells. You blink. Your grizzly bear bites the wizard statue. Your grizzly bear claws the wizard statue but does no damage. Your grizzly bear completely misses the wizard statue. Your grizzly bear barely misses the wizard statue. Your grizzly bear claws the wizard statue! The wizard statue is destroyed! Your grizzly bear looks stronger. Your grizzly bear is engulfed in noxious fumes. Your grizzly bear bites the wizard statue! Your grizzly bear claws the wizard statue but does no damage. Your grizzly bear is engulfed in noxious fumes. The wizard statue throws ice at you. The shard of ice hits your black bear. Your black bear dies! Your black bear's corpse disappears in a puff of smoke! Your black bear is engulfed in noxious fumes. Your black bear appears confused. Your grizzly bear is engulfed in noxious fumes. Your grizzly bear appears confused. Your grizzly bear bites the wizard statue but does no damage. Your grizzly bear claws the wizard statue. Your grizzly bear claws the wizard statue! Your black bear is engulfed in noxious fumes. Your black bear appears confused. You see here 10 gold pieces. Unknown command. Unknown command. Your grizzly bear is engulfed in noxious fumes. Your grizzly bear appears confused. Your grizzly bear bites the wizard statue! Your grizzly bear claws the wizard statue but does no damage. Your grizzly bear claws the wizard statue. Your grizzly bear is engulfed in noxious fumes. Your grizzly bear appears confused. Your grizzly bear completely misses you. Your grizzly bear claws you! Your grizzly bear claws you. Your grizzly bear is engulfed in noxious fumes. Your grizzly bear bites the wizard statue but does no damage. Your grizzly bear claws the wizard statue but does no damage. Your grizzly bear claws the wizard statue. Your grizzly bear is engulfed in noxious fumes. Your grizzly bear appears confused. Your black bear is engulfed in noxious fumes. Your black bear appears confused. Your black bear barely misses your grizzly bear. Your black bear claws your grizzly bear. Your black bear claws your grizzly bear but does no damage. Your grizzly bear is engulfed in noxious fumes. Your grizzly bear bites the wizard statue but does no damage. Your grizzly bear claws the wizard statue but does no damage. Your grizzly bear claws the wizard statue! Your grizzly bear is engulfed in noxious fumes. Your grizzly bear appears confused. Your grizzly bear bites your grizzly bear. Your grizzly bear completely misses your grizzly bear. Your grizzly bear claws your grizzly bear. Your grizzly bear is engulfed in noxious fumes. Your grizzly bear appears confused. Your grizzly bear is engulfed in noxious fumes. Your grizzly bear appears confused. Your black bear is engulfed in noxious fumes. Your black bear bites your grizzly bear but does no damage. Your black bear claws your grizzly bear but does no damage. Unknown command. You catch the wizard statue momentarily off-guard. You hit the wizard statue. The wizard statue is almost destroyed. Your grizzly bear is engulfed in noxious fumes. Your grizzly bear appears confused. Your grizzly bear is engulfed in noxious fumes. Your grizzly bear appears confused. Your grizzly bear is engulfed in noxious fumes. Your grizzly bear appears confused. Your grizzly bear is engulfed in noxious fumes. Your grizzly bear appears confused. Your grizzly bear bites your grizzly bear but does no damage. Your grizzly bear claws your grizzly bear. Your black bear is engulfed in noxious fumes. Your black bear bites your grizzly bear but does no damage. Helpless, your grizzly bear fails to dodge your black bear's attack. Your black bear claws your grizzly bear but does no damage. Your black bear claws your grizzly bear. Unknown command. Unknown command. Unknown command. You puncture the wizard statue! The wizard statue is almost destroyed. Your grizzly bear is engulfed in noxious fumes. Your grizzly bear appears confused. Your grizzly bear bites the wizard statue. The wizard statue is destroyed! Your grizzly bear looks stronger. Your black bear is engulfed in noxious fumes. Unknown command. Your grizzly bear bites your black bear! Your grizzly bear claws your black bear but does no damage. Your grizzly bear claws your black bear! Your grizzly bear is engulfed in noxious fumes. Your black bear barely misses your grizzly bear. Your black bear claws your grizzly bear but does no damage. Your grizzly bear rages. Helpless, your grizzly bear fails to dodge your grizzly bear's attack. Your grizzly bear bites your grizzly bear! Your grizzly bear barely misses your grizzly bear. Your grizzly bear closely misses your grizzly bear. You block your grizzly bear's attack. Your grizzly bear completely misses you. Your black bear barely misses your grizzly bear. Your black bear claws your grizzly bear but does no damage. Your black bear closely misses your grizzly bear. You now have 2148 gold pieces. Helpless, your grizzly bear fails to dodge your grizzly bear's attack. Your grizzly bear bites your grizzly bear. Your grizzly bear claws your grizzly bear. Helpless, your grizzly bear fails to dodge your grizzly bear's attack. Your grizzly bear claws your grizzly bear. Your grizzly bear bites your grizzly bear. Your grizzly bear dies! Your grizzly bear's corpse disappears in a puff of smoke! Your grizzly bear bites your grizzly bear. Your grizzly bear claws your grizzly bear. Your grizzly bear claws your grizzly bear but does no damage. Your black bear closely misses your grizzly bear. Your black bear claws your grizzly bear but does no damage. You swap places. Your grizzly bear bites your black bear. Helpless, your black bear fails to dodge your grizzly bear's attack. Your grizzly bear claws your black bear. Your black bear dies! Your black bear's corpse disappears in a puff of smoke! You now have 2162 gold pieces. Your grizzly bear rages. You now have 2186 gold pieces. You see here an ornate deck of cards {god gift}. Your grizzly bear completely misses your grizzly bear. Your grizzly bear claws your grizzly bear but does no damage. Helpless, your grizzly bear fails to dodge your grizzly bear's attack. Your grizzly bear claws your grizzly bear. Your grizzly bear bites your grizzly bear! Your grizzly bear claws your grizzly bear but does no damage. Helpless, your grizzly bear fails to dodge your grizzly bear's attack. Your grizzly bear claws your grizzly bear. J - a papyrus book Your grizzly bear is no longer berserk. Read which item? (? for menu, Esc to quit) This book is beyond your current level of understanding. You drop a papyrus book {highlevel}. Your grizzly bear seems less confused. You now have 2208 gold pieces. J - a ring of intelligence Your grizzly bear closely misses your grizzly bear. Your grizzly bear claws your grizzly bear. Your grizzly bear returns to your side! You drop a ring of intelligence. Your grizzly bear bites your grizzly bear but does no damage. Your grizzly bear claws your grizzly bear. You offer a prayer to Nemelex Xobeh. Nemelex Xobeh is exalted by your worship. The ring of intelligence disappears without a glow. Your prayer is over. Your grizzly bear seems less confused. You swap places. You see here a sabre. You offer a prayer to Nemelex Xobeh. Nemelex Xobeh is exalted by your worship. The sabre disappears without a glow. Your prayer is over. Your grizzly bear disappears in a puff of smoke! You see here a glowing quarterstaff. You offer a prayer to Nemelex Xobeh. Nemelex Xobeh is exalted by your worship. The glowing quarterstaff disappears without additional glow. Your prayer is over. Your grizzly bear looks more energetic. Your grizzly bear seems less confused. You now have 2218 gold pieces. You swap places. You now have 2242 gold pieces. You see here an ornate deck of cards {god gift}. You see here a papyrus book {highlevel}. You swap places. Your grizzly bear disappears in a puff of smoke! Your grizzly bear disappears in a puff of smoke! You see here 2 bolts. Casting: Blink Confirm with . or Enter, or press ? or * to list all spells. The deep elf conjurer shouts! Casting: Summon Small Mammals Confirm with . or Enter, or press ? or * to list all spells. The deep elf conjurer casts a spell at you. The bolt of lightning hits you! You resist. The bolt of lightning hits your quokka. Your quokka dies! Your quokka's corpse disappears in a puff of smoke! Unknown command. Casting: Summon Small Mammals Confirm with . or Enter, or press ? or * to list all spells. Your megabat barely misses the deep elf conjurer. Your megabat hits the deep elf conjurer. The deep elf conjurer gestures at you while chanting. The bolt of cold hits your rat. Your rat dies! Your rat's corpse disappears in a puff of smoke! The bolt of cold misses you. Unknown command. Unknown command. Casting: Summon Small Mammals Confirm with . or Enter, or press ? or * to list all spells. Your megabat barely misses the deep elf conjurer. Your megabat closely misses the deep elf conjurer. Unknown command. Unknown command. Unknown command. Casting: Summon Small Mammals Confirm with . or Enter, or press ? or * to list all spells. Your megabat misses the deep elf conjurer. Your megabat hits the deep elf conjurer. Your grey rat bites the deep elf conjurer. The deep elf conjurer hits your grey rat with an elven sabre. Unknown command. Unknown command. Unknown command. Your megabat closely misses the deep elf conjurer. Your megabat barely misses the deep elf conjurer. Your megabat hits the deep elf conjurer. Your grey rat barely misses the deep elf conjurer. Your grey rat closely misses the deep elf conjurer. Your megabat closely misses the deep elf conjurer. Your megabat barely misses the deep elf conjurer. Your grey rat barely misses the deep elf conjurer. Your grey rat bites the deep elf conjurer. Unknown command. Unknown command. Your megabat hits the deep elf conjurer. Your quokka misses the deep elf conjurer. Your quokka completely misses the deep elf conjurer. Your megabat closely misses the deep elf conjurer. Your megabat hits the deep elf conjurer. Your grey rat bites the deep elf conjurer. The deep elf conjurer hits your megabat with an elven sabre. Unknown command. Unknown command. Your megabat hits the deep elf conjurer. Your grey rat closely misses the deep elf conjurer. Your megabat hits the deep elf conjurer. Your megabat barely misses the deep elf conjurer. The deep elf conjurer casts a spell. The deep elf conjurer looks slightly unstable. Unknown command. You hit the deep elf conjurer. You kill the deep elf conjurer! Unknown command. You swap places. Things that are here: an elven sabre; an elf corpse Drink blood from an elf corpse? (ye/n/q/i?) This warm blood tastes magically delicious! You feel somewhat less thirsty. You continue drinking. You finish drinking. Magic restored. You swap places. You puncture the toadstool! You destroy the toadstool! Things that are here: an orcish club; an orcish chain mail; an orc skeleton You offer a prayer to Nemelex Xobeh. Nemelex Xobeh is exalted by your worship. The orcish club disappears without a glow. The orcish chain mail disappears without a glow. The orc skeleton disappears without a glow. Your prayer is over. Your grey rat disappears in a puff of smoke! A deep elf soldier comes into view. It is wielding a runed elven long sword. Casting: Summon Small Mammals Confirm with . or Enter, or press ? or * to list all spells. The deep elf soldier points at you and mumbles some strange words. The puff of flame misses you. The puff of flame hits your grey rat. Your grey rat dies! Your grey rat's corpse disappears in a puff of smoke! Unknown command. Unknown command. Casting: Summon Small Mammals Confirm with . or Enter, or press ? or * to list all spells. Your megabat disappears in a puff of smoke! Unknown command. Unknown command. Found Xaiqax's Book Emporium. Your megabat hits the deep elf soldier but does no damage. Your grey rat disappears in a puff of smoke! A deep elf knight comes into view. It is wielding an elven scimitar. You closely miss the deep elf soldier. You bite the deep elf soldier, but do no damage. Your megabat hits the deep elf soldier but does no damage. Your rat closely misses the deep elf soldier. Your rat bites the deep elf soldier. Your megabat disappears in a puff of smoke! Your grey rat barely misses the deep elf soldier. Your grey rat completely misses the deep elf soldier. Your rat bites the deep elf soldier but does no damage. You block the deep elf soldier's attack. You closely miss the deep elf soldier. Your bite misses the deep elf soldier. Your megabat misses the deep elf soldier. Your megabat barely misses the deep elf soldier. Your megabat closely misses the deep elf soldier. Your grey rat barely misses the deep elf soldier. Your grey rat bites the deep elf soldier but does no damage. Your rat bites the deep elf soldier but does no damage. You block the deep elf soldier's attack. Unknown command. You hit the deep elf soldier. You bite the deep elf soldier. You draw the deep elf soldier's blood! You feel better. You feel slightly more full. The deep elf soldier is moderately wounded. Your megabat disappears in a puff of smoke! Your rat barely misses the deep elf soldier. Your grey rat misses the deep elf soldier. Your grey rat completely misses the deep elf soldier. Your rat bites the deep elf soldier but does no damage. The deep elf soldier mumbles some strange words. The deep elf soldier flickers and vanishes for a moment. You hit the deep elf soldier. You bite the deep elf soldier, but do no damage. The deep elf soldier is moderately wounded. Your quokka disappears in a puff of smoke! Your grey rat closely misses the deep elf soldier. The deep elf soldier points at you and mumbles some strange words. The magic dart hits you! You puncture the deep elf soldier! You kill the deep elf soldier! Your grey rat disappears in a puff of smoke! Unknown command. You swap places. A deep elf fighter comes into view. It is wielding an elven scimitar. Things that are here: a runed elven long sword; an elven ring mail The deep elf fighter gestures wildly while chanting. The deep elf fighter seems to speed up. The deep elf mage shouts! The deep elf fighter shouts! A deep elf soldier comes into view. It is wielding an elven long sword. Casting: Summon Small Mammals Confirm with . or Enter, or press ? or * to list all spells. The deep elf soldier casts a spell. The deep elf soldier seems to speed up. The deep elf knight gestures at you while chanting. The magic dart hits you! A deep elf fighter comes into view. It is wielding an elven short sword. Unknown command. Casting: Summon Small Mammals Confirm with . or Enter, or press ? or * to list all spells. Your rat misses the deep elf knight. Your quokka barely misses the deep elf knight. The deep elf fighter casts a spell. The deep elf fighter seems to speed up. The deep elf knight gestures wildly while chanting. The deep elf knight flickers and vanishes for a moment. The deep elf knight hits you but does no damage. A deep elf conjurer comes into view. It is wielding an elven long sword. Unknown command. Unknown command. You impale the deep elf knight!! There is a sudden explosion of sparks! Your bite misses the deep elf knight. The deep elf knight is heavily wounded. Your megabat closely misses the deep elf knight. Your megabat misses the deep elf knight. Your megabat hits the deep elf knight. The deep elf conjurer looks stronger. The deep elf fighter points at you and mumbles some strange words. The magic dart hits your rat. Your rat dies! Your rat's corpse disappears in a puff of smoke! Unknown command. Unknown command. Unknown command. Unknown command. You closely miss the deep elf knight. Your rat closely misses the deep elf knight. Your rat misses the deep elf knight. Your megabat barely misses the deep elf knight. Your megabat misses the deep elf knight. The deep elf conjurer becomes somewhat translucent. The deep elf fighter casts a spell. The deep elf fighter seems to speed up. The deep elf soldier gestures at you while chanting. The puff of flame misses you. The puff of flame hits your quokka. Your quokka dies! Your quokka's corpse disappears in a puff of smoke! The deep elf soldier points at you and mumbles some strange words. The magic dart hits you! The deep elf knight closely misses your rat. The deep elf knight hits your rat with an elven scimitar. Your rat dies! Your rat's corpse disappears in a puff of smoke! A deep elf soldier comes into view. It is wielding an elven short sword. Unknown command. Use which ability? (? or * to list) Draw from which deck? (? for menu, Esc to quit) You draw a card... It is the Dance. Your megabat closely misses the deep elf knight. Your megabat hits the deep elf knight. Your megabat closely misses the deep elf knight. Your megabat barely misses the deep elf knight. The deep elf conjurer gestures wildly while chanting. You feel a wave of unholy energy pass over you. The deep elf fighter hits your megabat with an elven scimitar. The deep elf fighter glows brightly for a moment. The deep elf fighter casts a spell at you. The magic dart hits you! Unknown command. Unknown command. Unknown command. Use which ability? (? or * to list) Draw from which deck? (? for menu, Esc to quit) You draw a card... It is the Herd. The deck of cards disappears in a puff of smoke. A soldier ant comes into view. Your megabat misses the deep elf knight. Your megabat hits the deep elf knight. The deep elf soldier's eyes start to glow. The deep elf fighter hits your megabat with an elven scimitar! Your megabat dies! Your megabat's corpse disappears in a puff of smoke! The deep elf fighter gestures wildly while chanting. You feel troubled. The deep elf soldier's eyes start to glow. The deep elf mage points at you and mumbles some strange words. You resist. The deep elf knight hits your rat with an elven scimitar! Your rat dies! Your rat's corpse disappears in a puff of smoke! Unknown command. Unknown command. Unknown command. You swap places. The soldier ant stings you but does no damage. The deep elf fighter closely misses your grey rat. The deep elf fighter barely misses your grey rat. The deep elf fighter looks stronger. The deep elf fighter hits your grey rat with an elven long sword! Your grey rat dies! Your grey rat's corpse disappears in a puff of smoke! The deep elf knight hits your soldier ant with an elven scimitar! Things that are here: a runed elven long sword; an elven ring mail Unknown command. Unknown command. Use which ability? (? or * to list) Draw from which deck? (? for menu, Esc to quit) You draw a card... It is Foxfire. The soldier ant closely misses you. The deep elf conjurer glows brightly for a moment. The deep elf soldier's eyes start to glow. The deep elf soldier hits your rat with an elven long sword. The deep elf fighter closely misses your insubstantial wisp. The deep elf fighter misses your insubstantial wisp. The deep elf knight hits your soldier ant with an elven scimitar. Unknown command. Unknown command. Unknown command. Unknown command. You swap places. The soldier ant barely misses you. The deep elf fighter points at you and mumbles some strange words. The puff of flame hits your rat. Your rat dies! Your rat's corpse disappears in a puff of smoke! The deep elf fighter hits your insubstantial wisp but does no damage. The deep elf fighter misses your insubstantial wisp. The deep elf knight casts a spell at you. The magic dart hits you! Unknown command. Unknown command. Unknown command. You barely miss the deep elf fighter. You bite the deep elf fighter. You draw the deep elf fighter's blood! You feel better. You feel slightly more full. The deep elf fighter is lightly wounded. Your insubstantial wisp hits the soldier ant. The deep elf fighter blocks your megabat's attack. The soldier ant completely misses you. Your soldier ant stings the deep elf fighter! Your soldier ant poisons the deep elf fighter! The deep elf fighter is poisoned. Your insubstantial wisp hits the deep elf fighter. Your insubstantial wisp blinks! Your insubstantial wisp blinks! The deep elf fighter hits you but does no damage. The deep elf soldier hits your insubstantial wisp but does no damage. The deep elf knight completely misses you. Unknown command. You swap places. Your insubstantial wisp closely misses the deep elf fighter. Your insubstantial wisp barely misses the deep elf fighter. The deep elf fighter blocks your megabat's attack. You block the soldier ant's attack. Your soldier ant misses the deep elf fighter. Your soldier ant stings the deep elf fighter. Your soldier ant poisons the deep elf fighter! The deep elf fighter looks even sicker. Your insubstantial wisp blinks! The deep elf conjurer becomes somewhat translucent. The deep elf fighter completely misses your insubstantial wisp. The deep elf fighter misses your insubstantial wisp. The deep elf fighter hits your soldier ant with an elven short sword! The deep elf fighter mumbles some strange words. The deep elf fighter blinks! The deep elf knight hits your insubstantial wisp with an elven scimitar! Unknown command. Unknown command. Unknown command. Unknown command. Wield which item (- for none, * to show all)? (? for menu, Esc to quit) Your +2,+2 demon trident of electrocution stops crackling. K - a +1 rod of destruction [lightning,iron,fireball] (15/15) (in hand) The deep elf fighter hits your soldier ant with an elven short sword. Unknown command. Unknown command. Unknown command. Unknown command. Unknown command. Casting: Summon Small Mammals Confirm with . or Enter, or press ? or * to list all spells. You blink. Found 8 gold pieces. Your megabat barely misses the deep elf fighter. Your megabat hits the deep elf fighter. The deep elf soldier gestures wildly while chanting. The deep elf soldier seems to speed up. The deep elf fighter's eyes start to glow. The deep elf fighter gestures at you while chanting. The puff of frost hits your soldier ant. Unknown command. Unknown command. Unknown command. The deep elf fighter blocks your glowing club's attack. Your glowing club hits the deep elf fighter! Your insubstantial wisp hits the deep elf fighter. The deep elf fighter blocks your megabat's attack. The deep elf soldier blocks your megabat's attack. The deep elf fighter blocks your megabat's attack. The deep elf fighter barely misses your insubstantial wisp. The deep elf fighter misses your insubstantial wisp. The deep elf fighter mumbles some strange words. You feel a wave of unholy energy pass over you. The deep elf fighter closely misses your megabat. Unknown command. Unknown command. Unknown command. Casting: Blink Confirm with . or Enter, or press ? or * to list all spells. A scorpion comes into view. The deep elf fighter blocks your glowing club's attack. Your insubstantial wisp blinks! Your megabat closely misses the deep elf fighter. Your megabat hits the deep elf fighter. The deep elf soldier's eyes start to glow. The deep elf soldier glows brightly for a moment. The deep elf fighter gestures at your insubstantial wisp while chanting. The puff of frost hits your insubstantial wisp. Your insubstantial wisp appears unharmed. The deep elf fighter unwields an uncursed elven short sword. The deep elf fighter drops an uncursed elven short sword. The deep elf fighter picks up a runed elven long sword. The deep elf fighter wields a runed elven long sword. The deep elf fighter mumbles some strange words. The deep elf fighter blinks! The deep elf knight hits your soldier ant but does no damage. Unknown command. Unknown command. You swap places. Your glowing club hits the deep elf soldier but does no damage. Your insubstantial wisp barely misses the soldier ant. Your megabat barely misses the deep elf soldier. Your megabat closely misses the deep elf soldier. Your megabat hits the deep elf soldier. You block the soldier ant's attack. Your soldier ant stings the soldier ant but does no damage. Your scorpion stings the soldier ant. Your scorpion poisons the soldier ant! The soldier ant is poisoned. The scorpion stings your scorpion but does no damage. The deep elf conjurer hits your megabat with an elven long sword. Your megabat dies! Your megabat's corpse disappears in a puff of smoke! The deep elf soldier casts a spell at your glowing club. The magic dart hits your glowing club. The deep elf soldier becomes somewhat translucent. The deep elf mage closely misses your soldier ant. Unknown command. Unknown command. Your glowing club closely misses the deep elf soldier. Your glowing club barely misses the deep elf soldier. Your scorpion stings the scorpion! Your scorpion poisons the scorpion! The scorpion is poisoned. The scorpion stings your scorpion. The deep elf fighter casts a spell at you. The puff of flame hits you! You resist. The deep elf soldier hits your glowing club with an elven long sword. The deep elf knight hits your soldier ant but does no damage. Unknown command. Unknown command. Unknown command. Casting: Summon Scorpions Confirm with . or Enter, or press ? or * to list all spells. You blink. Found a small ebony casket. Your glowing club misses something. Your glowing club barely misses something. Your scorpion barely misses the scorpion. Your scorpion closely misses the scorpion. Unknown command. Unknown command. Unknown command. Unknown command. Your scorpion closely misses the deep elf fighter. Your scorpion barely misses the deep elf fighter. The deep elf conjurer gestures at you while chanting. The bolt of lightning hits you! You resist. The deep elf soldier gestures at you while chanting. The puff of flame hits you! One of your 4 scrolls of magic mapping catches fire! The deep elf soldier gestures at you while chanting. The magic dart hits you! The deep elf fighter completely misses your insubstantial wisp. The deep elf fighter misses your insubstantial wisp. The deep elf fighter casts a spell at you. The puff of flame hits your glowing club. Your glowing club resists. The deep elf fighter points at you and mumbles some strange words. The puff of frost hits your glowing club. Your glowing club resists. Your glowing club is destroyed! Unknown command. Evoke which spell from the rod ([a-c] spell [?*] list)? Aiming: Fireball Press: ? - help, Shift-Dir - straight line, f - deep elf soldier Aim: A deep elf soldier, wielding an elven short sword, wearing a shiny elven chain mail, and wearing an elven buckler (moving very quickly) The fireball explodes! The fireball engulfs the deep elf soldier. The deep elf soldier is severely wounded. The fireball engulfs the deep elf soldier. The deep elf soldier is moderately wounded. The fireball engulfs the soldier ant. The soldier ant is moderately wounded. Your insubstantial wisp blinks! The soldier ant looks more healthy. Your scorpion stings the deep elf fighter! Your scorpion poisons the deep elf fighter! The deep elf fighter looks even sicker. The deep elf fighter dies! Your scorpion looks stronger. Something misses the deep elf conjurer. Something hits the deep elf conjurer but does no damage. The deep elf fighter becomes somewhat translucent. Unknown command. Unknown command. Unknown command. Evoke which spell from the rod ([a-c] spell [?*] list)? Aiming: Fireball Press: ? - help, Shift-Dir - straight line, f - deep elf soldier, p - deep elf soldier Aim: A deep elf soldier, wielding an elven long sword (moderately wounded, moving very quickly) The fireball explodes! The fireball engulfs the deep elf soldier. The deep elf soldier is almost dead. The fireball engulfs the deep elf knight. You kill the deep elf knight! The fireball engulfs the deep elf soldier. You kill the deep elf soldier! The deep elf soldier points at you and mumbles some strange words. The puff of flame hits you! Your scroll of fear catches fire! The deep elf mage casts a spell. The deep elf mage seems to speed up. Unknown command. Unknown command. Unknown command. Unknown command. Use which ability? (? or * to list) Draw from which deck? (? for menu, Esc to quit) You draw a card... It is the Bones. Something barely misses the deep elf mage. Something closely misses the deep elf mage. The deep elf conjurer gestures at you while chanting. The bolt of cold hits you! You resist. The deep elf fighter unwields an uncursed runed elven long sword. The deep elf fighter drops an uncursed runed elven long sword. The deep elf fighter picks up an elven scimitar. The deep elf fighter wields an elven scimitar. Unknown command. Unknown command. Unknown command. What do you say? t - Shout! Orders for allies: a - Attack new target. p - Attack previous target. s - Stop attacking. w - Wait here. f - Follow me. Anything else - Stay silent. Gang up on whom? Press: ? - help, Dir - move target cursor, f/p - deep elf soldier Aim: A deep elf soldier, wielding an elven long sword (almost dead, moving very quickly) Attack! The deep elf fighter becomes somewhat translucent. The deep elf fighter gestures wildly while chanting. The deep elf fighter blinks! Unknown command. Wield which item (- for none, * to show all)? (? for menu, Esc to quit) You hear the crackle of electricity. a - a +2,+2 demon trident of electrocution (weapon) The soldier ant misses you. The deep elf fighter becomes somewhat translucent. Unknown command. Unknown command. Unknown command. You swap places. Your skeletal warrior closely misses the deep elf soldier. Your skeletal warrior hits the deep elf soldier with a runed short sword. The deep elf soldier dies! Your insubstantial wisp barely misses the deep elf fighter. Your insubstantial wisp completely misses the deep elf fighter. Your scorpion stings the deep elf fighter. The deep elf conjurer misses your insubstantial wisp. The deep elf conjurer hits your insubstantial wisp but does no damage. The deep elf fighter points at you and mumbles some strange words. The magic dart hits your skeletal warrior. Unknown command. Unknown command. Unknown command. You puncture the soldier ant! The soldier ant is severely wounded. Your scorpion stings the deep elf fighter. The deep elf fighter mumbles some strange words. The deep elf fighter blinks! Unknown command. Unknown command. Unknown command. Found 9 gold pieces. Your skeletal warrior gestures at the surrounding area while chanting. The dead are walking! Your insubstantial wisp blinks! The deep elf mage closely misses you. A deep elf fighter comes into view. It is wielding a glowing elven scimitar. Unknown command. Unknown command. Unknown command. You puncture the deep elf mage! There is a sudden explosion of sparks! You kill the deep elf mage! The deep elf fighter hits your scorpion with an elven scimitar. The deep elf fighter hits your scorpion but does no damage. Something hits your scorpion but does no damage. Unknown command. Your scorpion barely misses the deep elf fighter. Your scorpion stings the deep elf fighter! Your scorpion misses something. Your scorpion closely misses something. Your scorpion closely misses the deep elf conjurer. Your scorpion stings the deep elf conjurer but does no damage. The deep elf fighter casts a spell at you. The puff of flame hits you! The deep elf conjurer hits your insubstantial wisp but does no damage. You block the deep elf fighter's attack. Something closely misses your scorpion. Something barely misses your scorpion. Unknown command. You hit the deep elf fighter. There is a sudden explosion of sparks! You kill the deep elf fighter! The soldier ant stings your elf zombie but does no damage. Your insubstantial wisp hits the deep elf conjurer. Your elf zombie barely misses the soldier ant. Unknown command. Unknown command. Unknown command. The soldier ant waves its antennae. The soldier ant stings your elf zombie! Your insubstantial wisp hits the deep elf conjurer. Your scorpion closely misses the soldier ant. Your scorpion stings the soldier ant but does no damage. The deep elf conjurer casts a spell at you. The bolt of negative energy hits your elf zombie. Your elf zombie completely resists. The bolt of negative energy misses you. Unknown command. You miss the deep elf fighter. You feel less studious. Your skeletal warrior closely misses the deep elf conjurer. Your skeletal warrior hits the deep elf conjurer with a runed short sword! Your elf zombie closely misses the deep elf conjurer. Your elf zombie barely misses the deep elf conjurer. Your scorpion disappears in a puff of smoke! Your insubstantial wisp barely misses the deep elf conjurer. The deep elf fighter misses you. The deep elf conjurer hits your elf zombie with an elven long sword! Unknown command. Unknown command. You puncture the deep elf fighter! There is a sudden explosion of sparks! The deep elf fighter is almost dead. Your scorpion barely misses the deep elf conjurer. The deep elf fighter misses you. The deep elf conjurer hits your elf zombie with an elven long sword. Unknown command. You hit the deep elf fighter. You kill the deep elf fighter! Your skeletal warrior hits the deep elf conjurer with a runed short sword! The deep elf conjurer dies! Your insubstantial wisp barely misses the soldier ant. Your insubstantial wisp hits the soldier ant. Your insubstantial wisp blinks! Your insubstantial wisp blinks! Unknown command. Your insubstantial wisp blinks! The magic dart hits your skeletal warrior. Things that are here: an elven scimitar; an elven buckler You swap places. Your insubstantial wisp blinks! Your scorpion disappears in a puff of smoke! The deep elf fighter points at you and mumbles some strange words. The magic dart hits your insubstantial wisp. Unknown command. Unknown command. Unknown command. Your skeletal warrior throws its bony arms wide while chanting. The dead are walking! Unknown command. Unknown command. Unknown command. Unknown command. You hit the soldier ant. There is a sudden explosion of sparks! You kill the soldier ant! The soldier ant's corpse disappears in a puff of smoke! Unknown command. Unknown command. Things that are here: an elven scimitar; an elven buckler You offer a prayer to Nemelex Xobeh. Nemelex Xobeh is exalted by your worship. The elven scimitar disappears without a glow. The elven buckler disappears without a glow. Your prayer is over. Things that are here: an elven long sword; an elven leather armour You offer a prayer to Nemelex Xobeh. Nemelex Xobeh is exalted by your worship. The elven long sword glows slightly and disappears. The elven leather armour disappears without a glow. Your prayer is over. You feel a bit more experienced. You see here an uncursed runed elven long sword. t - an uncursed runed elven long sword Wield which item (- for none, * to show all)? (? for menu, Esc to quit) Your +2,+2 demon trident of electrocution stops crackling. t - an uncursed runed elven long sword (weapon) You are now empty-handed. You drop an uncursed runed elven long sword. Wield which item (- for none, * to show all)? (? for menu, Esc to quit) You hear the crackle of electricity. a - a +2,+2 demon trident of electrocution (weapon) You swap places. You see here an uncursed runed elven long sword. You offer a prayer to Nemelex Xobeh. Nemelex Xobeh is exalted by your worship. The uncursed runed elven long sword glows slightly and disappears. Your prayer is over. You swap places. Things that are here: an uncursed elven short sword; an elven ring mail You offer a prayer to Nemelex Xobeh. Nemelex Xobeh is exalted by your worship. The uncursed elven short sword disappears without a glow. The elven ring mail disappears without a glow. Your prayer is over. You swap places. You see here an elven scimitar. You offer a prayer to Nemelex Xobeh. Nemelex Xobeh is exalted by your worship. The elven scimitar disappears without a glow. Your prayer is over. Things that are here: an elven long sword; an elven ring mail; an elf corpse Drink blood from an elf corpse? (ye/n/q/i?) This warm blood tastes magically delicious! You feel somewhat less thirsty. Your skeletal warrior gestures at the surrounding area while chanting. The dead are walking! You continue drinking. You finish drinking. >>>>>>>>>>>>>>>>>>>>>> Game state: mouse_enabled: 0, waiting_for_command: 0, terminal_resized: 0 io_inited: 1, need_save: 1, saving_game: 0, updating_scores: 0: seen_hups: 0, map_stat_gen: 0, type: 1, arena_suspended: 0, unicode_ok: 1 prev_cmd = CMD_EAT repeat_cmd = CMD_NO_CMD Player: {{{{{{{{{{{ Name: [valrus] Species: Vampire Job: Summoner class_name: Summoner HP: 90/110; base: 5000/5085 MP: 31/33; base: 5000/5019 Stats: 12 (12) 19 (19) 16 (16) Position: (58, 40), god:Nemelex Xobeh (11), turn_is_over: 0, banished: 0 Standing on/in/over feature: Floor Delayed (1): type: 2 duration: 0 parm1: 0 parm2: 58 started: 1 Spell bugs: Durations: Attributes: #3: 4 #17: 3859 #18: 1637 Mutations: #4: 3 #20: 1 #21: 2 #79: 1 Demon mutations: #4: 3 #20: 1 #79: 1 Inventory bugs: Equipment: eq slot #0, inv slot #0: +2,+2 demon trident of electrocution eq slot #1, inv slot #46: +2 dwarven cloak eq slot #2, inv slot #51: +0 helmet eq slot #3, inv slot #3: +0 pair of gloves eq slot #4, inv slot #17: +0 pair of boots eq slot #5, inv slot #27: +1 elven buckler of fire resistance eq slot #6, inv slot #7: +2 robe of cold resistance eq slot #7, inv slot #50: ring of Pleafesa {rElec rF+ AC+6 SInv} eq slot #8, inv slot #9: ring of Joy {rC+ AC+5 Str+2} eq slot #9, inv slot #6: amulet of resist mutation }}}}}}}}}}} clua stack: dlua stack: Lua persistent data: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Lua marker contents: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> 0001-Fixed-failed-assert-when-a-corpse-is-raised-from-und.patch [^] (4,112 bytes) 2011-01-28 01:03 [Show Content] [Hide Content] From b93e39fad5c0bb35efbf325220be5175a61f064a Mon Sep 17 00:00:00 2001 From: valrus <thevalrus@hotmail.com> Date: Thu, 27 Jan 2011 12:37:49 -0800 Subject: [PATCH 1/2] Fixed failed assert when a corpse is raised from under a vampire drinking from it. Vampires drinking now counts as "butchering," as bottling blood does, so friendly monsters will not animate while you're doing it. --- crawl-ref/source/contrib/sdl | 2 +- crawl-ref/source/delay.cc | 36 +++++++++++++++++++++++------------- crawl-ref/source/xom.cc | 1 - 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/crawl-ref/source/contrib/sdl b/crawl-ref/source/contrib/sdl index 5877613..c2c3dc5 160000 --- a/crawl-ref/source/contrib/sdl +++ b/crawl-ref/source/contrib/sdl @@ -1 +1 @@ -Subproject commit 58776138f260489281abd18096d415bc3df2b1a6 +Subproject commit c2c3dc5b17aca511b70090e776f2d108c71a22fa diff --git a/crawl-ref/source/delay.cc b/crawl-ref/source/delay.cc index 3da6089..c885337 100644 --- a/crawl-ref/source/delay.cc +++ b/crawl-ref/source/delay.cc @@ -309,19 +309,25 @@ void stop_delay(bool stop_stair_travel) const bool was_orc = (mons_genus(item.plus) == MONS_ORC); - mpr("All blood oozes out of the corpse!"); + // Don't skeletonize a corpse if it's no longer there! + if (mitm[delay.parm1].defined() + && mitm[ delay.parm1 ].base_type == OBJ_CORPSES + && mitm[ delay.parm1 ].pos == you.pos()) + { + mpr("All blood oozes out of the corpse!"); - bleed_onto_floor(you.pos(), static_cast<monster_type>(item.plus), - delay.duration, false); + bleed_onto_floor(you.pos(), static_cast<monster_type>(item.plus), + delay.duration, false); - if (mons_skeleton(item.plus) && one_chance_in(3)) - turn_corpse_into_skeleton(item); - else - { - if (delay.parm1) - dec_inv_item_quantity(delay.parm2, 1); + if (mons_skeleton(item.plus) && one_chance_in(3)) + turn_corpse_into_skeleton(item); else - dec_mitm_item_quantity(delay.parm2, 1); + { + if (delay.parm1) + dec_inv_item_quantity(delay.parm2, 1); + else + dec_mitm_item_quantity(delay.parm2, 1); + } } if (was_orc) @@ -378,7 +384,9 @@ void stop_delay(bool stop_stair_travel) static bool _is_butcher_delay(int delay) { - return (delay == DELAY_BUTCHER || delay == DELAY_BOTTLE_BLOOD); + return (delay == DELAY_BUTCHER + || delay == DELAY_BOTTLE_BLOOD + || delay == DELAY_FEED_VAMPIRE); } void stop_butcher_delay() @@ -531,7 +539,8 @@ bool is_being_butchered(const item_def &item, bool just_first) for (unsigned int i = 0; i < you.delay_queue.size(); ++i) { if (you.delay_queue[i].type == DELAY_BUTCHER - || you.delay_queue[i].type == DELAY_BOTTLE_BLOOD) + || you.delay_queue[i].type == DELAY_BOTTLE_BLOOD + || you.delay_queue[i].type == DELAY_FEED_VAMPIRE) { const item_def &corpse = mitm[ you.delay_queue[i].parm1 ]; if (&corpse == &item) @@ -562,7 +571,8 @@ bool is_butchering() return (false); const delay_queue_item &delay = you.delay_queue.front(); - return (delay.type == DELAY_BUTCHER || delay.type == DELAY_BOTTLE_BLOOD); + return (delay.type == DELAY_BUTCHER || delay.type == DELAY_BOTTLE_BLOOD + || delay.type == DELAY_FEED_VAMPIRE); } bool player_stair_delay() diff --git a/crawl-ref/source/xom.cc b/crawl-ref/source/xom.cc index f17213a..31ae0dd 100644 --- a/crawl-ref/source/xom.cc +++ b/crawl-ref/source/xom.cc @@ -3312,7 +3312,6 @@ static int _xom_colour_smoke_trail(bool debug = false) const std::string speech = _get_xom_speech("colour smoke trail"); god_speaks(GOD_XOM, speech.c_str()); ->>>>>>> 9d8bd352a1d3761df0dcd29e6fb6e46fb44e3fb5 return (XOM_BAD_COLOUR_SMOKE_TRAIL); } -- 1.7.3.1 0002-Don-t-keep-drinking-from-a-corpse-after-it-s-raised.patch [^] (8,776 bytes) 2011-01-28 01:03 [Show Content] [Hide Content] From b3d1fd051b6b5068eb66a8e933fbbed9c4849a6d Mon Sep 17 00:00:00 2001 From: valrus <thevalrus@hotmail.com> Date: Thu, 27 Jan 2011 16:00:47 -0800 Subject: [PATCH 2/2] Don't keep drinking from a corpse after it's raised! --- crawl-ref/CREDITS.txt | 1 - crawl-ref/docs/options_guide.txt | 4 +- crawl-ref/source/delay.cc | 45 ++++++++++++++++++++++++++++--------- crawl-ref/source/delay.h | 1 + crawl-ref/source/mon-cast.cc | 2 +- crawl-ref/source/spl-summoning.cc | 7 ++++- crawl-ref/tiles_help.txt | 5 +-- 7 files changed, 45 insertions(+), 20 deletions(-) diff --git a/crawl-ref/CREDITS.txt b/crawl-ref/CREDITS.txt index d934ceb..c2e2d5f 100644 --- a/crawl-ref/CREDITS.txt +++ b/crawl-ref/CREDITS.txt @@ -61,4 +61,3 @@ John Greenberg Wille Mäntylä Evan Williams GreyKnight Erkki Nurmi Jeremey Wilson Joshua Gross Mattias Nyberg Yelve Yakut Brian Haase nyra Zooko - diff --git a/crawl-ref/docs/options_guide.txt b/crawl-ref/docs/options_guide.txt index 54d3555..98713d1 100644 --- a/crawl-ref/docs/options_guide.txt +++ b/crawl-ref/docs/options_guide.txt @@ -104,7 +104,7 @@ The contents of this text are: tile_font_msg_size, tile_font_tip_size, tile_font_lbl_size, tile_show_minihealthbar, tile_show_minimagicbar, tile_show_demon_tier, tile_layout_priority, - tile_force_regenerate_levels + tile_force_regenerate_levels 5- Character Dump. 5-a Items and Kills. kill_map, dump_kill_places, dump_item_origins, @@ -1838,7 +1838,7 @@ tile_layout_priority = minimap, inventory, gold_turn, command, spell, monster tile_force_regenerate_levels = false - If set to true, this will cause the tiles information of existing + If set to true, this will cause the tiles information of existing levels to be regenerated when loading the level, thus repairing save files where this information has become corrupted. diff --git a/crawl-ref/source/delay.cc b/crawl-ref/source/delay.cc index c885337..390cf81 100644 --- a/crawl-ref/source/delay.cc +++ b/crawl-ref/source/delay.cc @@ -310,9 +310,10 @@ void stop_delay(bool stop_stair_travel) const bool was_orc = (mons_genus(item.plus) == MONS_ORC); // Don't skeletonize a corpse if it's no longer there! - if (mitm[delay.parm1].defined() - && mitm[ delay.parm1 ].base_type == OBJ_CORPSES - && mitm[ delay.parm1 ].pos == you.pos()) + if ((delay.parm1) + || (item.defined() + && item.base_type == OBJ_CORPSES + && item.pos == you.pos())) { mpr("All blood oozes out of the corpse!"); @@ -531,6 +532,24 @@ bool delay_is_run(delay_type delay) return (delay == DELAY_RUN || delay == DELAY_REST || delay == DELAY_TRAVEL); } +bool is_being_drained(const item_def &item) +{ + if (!you_are_delayed()) + return (false); + + const delay_queue_item &delay = you.delay_queue.front(); + + if (delay.type == DELAY_FEED_VAMPIRE) + { + const item_def &corpse = mitm[ delay.parm2 ]; + + if (&corpse == &item) + return (true); + } + + return (false); +} + bool is_being_butchered(const item_def &item, bool just_first) { if (!you_are_delayed()) @@ -538,9 +557,9 @@ bool is_being_butchered(const item_def &item, bool just_first) for (unsigned int i = 0; i < you.delay_queue.size(); ++i) { + // mprf("delay queue has %i", you.delay_queue[i].type); if (you.delay_queue[i].type == DELAY_BUTCHER - || you.delay_queue[i].type == DELAY_BOTTLE_BLOOD - || you.delay_queue[i].type == DELAY_FEED_VAMPIRE) + || you.delay_queue[i].type == DELAY_BOTTLE_BLOOD) { const item_def &corpse = mitm[ you.delay_queue[i].parm1 ]; if (&corpse == &item) @@ -571,8 +590,7 @@ bool is_butchering() return (false); const delay_queue_item &delay = you.delay_queue.front(); - return (delay.type == DELAY_BUTCHER || delay.type == DELAY_BOTTLE_BLOOD - || delay.type == DELAY_FEED_VAMPIRE); + return (delay.type == DELAY_BUTCHER || delay.type == DELAY_BOTTLE_BLOOD); } bool player_stair_delay() @@ -695,11 +713,16 @@ void handle_delay() // * engorged ("alive") // * bat form runs out due to becoming full // * corpse becomes poisonous as the Vampire loses poison resistance - if (you.hunger_state == HS_ENGORGED + // * corpse disappears for some reason (e.g. animated by a monster) + if ((!delay.parm1 // on floor + && ( !(mitm[ delay.parm2 ].defined()) // missing + || mitm[ delay.parm2 ].base_type != OBJ_CORPSES // noncorpse + || mitm[ delay.parm2 ].pos != you.pos()) ) // elsewhere + || you.hunger_state == HS_ENGORGED || you.hunger_state > HS_SATIATED && player_in_bat_form() - || you.hunger_state >= HS_SATIATED - && mitm[delay.parm1].defined() - && is_poisonous(mitm[delay.parm1])) + || (you.hunger_state >= HS_SATIATED + && mitm[delay.parm2].defined() + && is_poisonous(mitm[delay.parm2])) ) { // Messages handled in _food_change() in food.cc. stop_delay(); diff --git a/crawl-ref/source/delay.h b/crawl-ref/source/delay.h index 9137af5..42230c6 100644 --- a/crawl-ref/source/delay.h +++ b/crawl-ref/source/delay.h @@ -72,6 +72,7 @@ void handle_delay(); void finish_last_delay(); bool delay_is_run(delay_type delay); +bool is_being_drained(const item_def &item); bool is_being_butchered(const item_def &item, bool just_first = true); bool is_vampire_feeding(); bool is_butchering(); diff --git a/crawl-ref/source/mon-cast.cc b/crawl-ref/source/mon-cast.cc index 127ddba..777394c 100644 --- a/crawl-ref/source/mon-cast.cc +++ b/crawl-ref/source/mon-cast.cc @@ -1212,7 +1212,7 @@ static bool _animate_dead_okay() if (crawl_state.game_is_arena()) return (true); - if (is_butchering()) + if (is_butchering() || is_vampire_feeding()) return (false); if (you.hunger_state < HS_SATIATED && you.mutation[MUT_HERBIVOROUS] < 3) diff --git a/crawl-ref/source/spl-summoning.cc b/crawl-ref/source/spl-summoning.cc index ced231e..7317acb 100644 --- a/crawl-ref/source/spl-summoning.cc +++ b/crawl-ref/source/spl-summoning.cc @@ -1697,6 +1697,7 @@ int animate_remains(const coord_def &a, corpse_type class_allowed, if (!_animatable_remains(*si)) continue; + const bool was_draining = is_being_drained(*si); const bool was_butchering = is_being_butchered(*si); success = _raise_remains(a, si.link(), beha, hitting, as, nas, @@ -1706,9 +1707,11 @@ int animate_remains(const coord_def &a, corpse_type class_allowed, if (actual && success) { // Ignore quiet. - if (was_butchering) + if (was_butchering || was_draining) { - mprf("The corpse you are butchering rises to %s!", + mprf("The corpse you are %s rises to %s!", + was_draining ? "drinking from" + : "butchering", beha == BEH_FRIENDLY ? "join your ranks" : "attack"); } diff --git a/crawl-ref/tiles_help.txt b/crawl-ref/tiles_help.txt index 74bb625..4fd5875 100644 --- a/crawl-ref/tiles_help.txt +++ b/crawl-ref/tiles_help.txt @@ -51,10 +51,10 @@ Getting information ------------------- Doing a rightclick with your mouse on any feature, monster or item on the -main map or in the tiled control panels will display the description of +main map or in the tiled control panels will display the description of said feature, monster or item on a separate screen. -A simple mouseover will usually display the same description, or as much of +A simple mouseover will usually display the same description, or as much of it as can fit, in the message area. Similarly, letting your mouse rest for a while on a feature, monster or @@ -159,4 +159,3 @@ tile_window_height = 768 The larger the map area the more cells there are to redraw each turn. If you've got a large display showing way more than the necessary 17x17 grids of the map, you could try specifying a lower resolution. - -- 1.7.3.1 |
||||||||||||
|
Mantis 1.1.8[^] Copyright © 2000 - 2009 Mantis Group |