git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8853 c06c8d41-db1a-0410-9941-cceddc491573
RIW55YSFKKTJLBTOJRVUBC7JOFUBOK7OBMISW4PBSVLYJHAAKPPQC DQ2H3TUQ35R545I3PDVOQTS67TEWT4GTAWMWGTJ6GNB3ZPQO5QIQC CWEZA2YKYA2NPXCDBT6GZQ4Q625BOXLRUC6WD3Z43UTHH5OHBYTAC WGDWMNZFFDNRQS42TRZAB7Q3ZWCCVY2CTN642Z4YYPKCBQCUHDPQC VGX2NJ7LQ6Q4AGAJMPZXFARQTQRLI4OYUXXPKWC6TDG4ADUEXLIQC VJDLV4PF2ZJ46NERO4LZUX5JE2CD5XBOBQCYYPTFWTHLUEYDUOYAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC GF5VGZLKKWIATLVLTUJR4LVEQZAKR7CWMLNFMJXA67WLHP7JNUUAC 5XNQ3SSNBFXFNWA6DPM74W6FH65NX665P3DMH6YCWVFOPZTJSYCQC S34LKQDIQJLIWVIPASOJBBZ6ZCXDHP5KPS7TRBZJSCDRVNCLK6UAC SFWCESFCUEVKJ6ZQQX3Y5YTIQD5BC6MCVSLVZFRGRTU46BFLKKWAC SCXTTP2FDNB2A7F4XXGXSSOEKZQ7ODDGN5YBCTZXGZ22CLCEH3WQC Y5IKTUDW3HOMUJBEUKVTLM4KZTNX4KMPE544A5LFY2S2BKSQRNSQC MM3NZ3ZNJW7FEDPYP55DNQOF3MOJG463VA3MMUSG2IKH4R2IBMJQC TGJZXTUIAKCFZQJ54ZQEBGFBVZSJCAX6AWDRSH3TP7UJRLGUM5SAC NTJP7TBK7MKQJO6W5KZUEBEH2ACGNY3GRJJX6X7ZHVSMXAJEEQLAC W63CCAP4YTMHQT35LMWGB7XPBXMFF7BLYCI3YRPCCQWFRTXVLTJAC WSW74U3IOZ4Q47MHN57KCWZCSJ4U4MOJX4CCDOLUD2KOFEIQR4BQC SZ2WVDRM5X23JFNNW6HTWNQ2DECTIXBU7EVOQRDISPZJNLJF2QBQC 3IU4ZBBJGAOQE2XYBIRS4EGCZBUTKT4Y3C6BZLLLB5POMQB4HCBAC GP7DDCLYNLI6SDXJJ7MH6XHXS5FGFM4SNL2J7J5DGE2EJOETJPHAC RA7RDZC5P4OYMR4MKTBO463YCREXENESV2VTMWKIT4G4SBJHFGLQC FI6AL3IS7HK4G5ZHQMIZYGHT4NJMLVH66DMLIQTQG5VLU6ITVPWQC YIIILIV4ZPRIPWWT4GL7YWSJCUVH6RJJLXV4XIHY6SF3H7Y3EAYAC 4EZVKDQA5GM3QDTNTCKEKGH4F6LGAYNLBT756PXODKZ2B7C4ZVHAC UET576SVCGS2TXEDRTO7BUTOTLJ77MYHIVZJCDWGH2BAXYMKG6DAC PZNRGNZPN4YLXL2UDMEUPE33AAZZ6Z2YPK6EQGYZL2PNTRWLCUNQC 3PBG6FJ6WGSR4UM3I7UQUYYCSYU3UBCKCIKYKUEEANIK72TUL4XAC 3YAWEKEQ7P2OL2X3H53DHI7IMAKH6GDQ7NE5GBNYN7O64L3NEDSAC radius_iterator::radius_iterator( const coord_def& _center, int _radius,bool _roguelike_metric, bool _require_los,bool _exclude_center )
radius_iterator::radius_iterator(const coord_def& _center, int _radius,bool _roguelike_metric, bool _require_los,bool _exclude_center,const env_show_grid* _losgrid)
if (require_los && !see_grid(location))return (false);
if (require_los){if (!losgrid && !see_grid(location))return (false);if (losgrid && !see_grid(*losgrid, center, location))return (false);}
int minx = c.x - 6;int maxx = c.x + 7;int miny = c.y - 6;int maxy = c.y + 7;int xinc = 1;int yinc = 1;
// Use an alternate LOS grid, based on the caster's LOS.env_show_grid losgrid;if (caster->atype() != ACT_PLAYER)losight(losgrid, grd, caster->pos(), true);
miny = c.y + 6;maxy = c.y - 7;yinc = -1;}if (caster != &you)losight(losgrid, grd, c, true);env_show_grid &los(caster == &you? env.no_trans_show : losgrid);coord_def a;for (a.x = minx; a.x != maxx; a.x += xinc){for (a.y = miny; a.y != maxy; a.y += yinc)
// This will produce a message if the corpse you are butchering// is raised.if (animate_remains(*ri, CORPSE_BODY, beha, hitting, god,actual, true) > 0)
if (!in_bounds(a) || !see_grid(los, c, a))continue;// Search all the items on the ground for a corpse. Only// one of a stack will be raised.for (stack_iterator si(a); si; ++si){const bool was_butchering = is_being_butchered(*si, false);if (animate_remains(a, CORPSE_BODY, beha, hitting, god,actual, true) > 0){number_raised++;if (see_grid(a))number_seen++;if (was_butchering)mpr("The corpse you are butchering rises to attack!");break;}}
number_raised++;if (see_grid(*ri))number_seen++;
const int chunk = you.equip[EQ_WEAPON];if (chunk != -1&& is_valid_item(you.inv[chunk])&& (you.inv[chunk].base_type == OBJ_CORPSES|| (you.inv[chunk].base_type == OBJ_FOOD&& you.inv[chunk].sub_type == FOOD_CHUNK)))
if (weapon&& (weapon->base_type == OBJ_CORPSES|| (weapon->base_type == OBJ_FOOD&& weapon->sub_type == FOOD_CHUNK)))
}void stop_butcher_delay(){if (current_delay_action() == DELAY_BUTCHER|| current_delay_action() == DELAY_BOTTLE_BLOOD|| current_delay_action() == DELAY_OFFER_CORPSE){stop_delay();}