git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8446 c06c8d41-db1a-0410-9941-cceddc491573
Y756PLIQ6IS4CY6R5PNBKI5PORSGSXP2KWO4J22A4DV6VSDDKZGAC
QXI6JLO5RGDKUG5H7RBMQTTT3234L2NGHJTMWAF6UJEBJDBDMMNAC
E46VBOJB5K4GCWG4BBMJZOSCHWRAS5JMHSFVANRS2DEESAWYVD4QC
ACSERNMWRXP4VUEUVKDBSDGTBZRI34P2PUVUDTKSAHNTCEDDCCVAC
U2VRHZ2NURHGN2HHFLRSKES52UMW3JW42AESRIQXRRTBBCHBOOYQC
6UPCB64Z2W243QR3JQD7WPQMPVNVBPYRG7GTGZK6LTKKBBSKBHZQC
Q57GOIHVFNJHTBYNUGJNME3UF2QFRJ6CN2UXVY47NHU7XAT7JJYAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
AJHVP42Y67SB4NKFMZB24524PGX2XA5WLFNEFV52MIGTS47ALMVQC
UADYVV3UD5ERJTZZJGY4EUQ4NJ2JSBG7YYUJ75ZRBIXRQXQKOJPAC
FLAGBNUNSIQNFDN53CDWABJRTTFWDL4PG34AI474ZKPXDEPYHOAQC
DKRSOHZXL6EPSLKOKHF7GJXSZEJVY7CXGACSHWLM5B5FTRETWWCAC
5FHWTG7M6FW4B3I33YI7QSM3OZIB6ZGC6TI6JISSLY5Y43HI56VAC
AYU5OVG2HZO46KDAPKUWAVHS5HTYFKUWIMIRMTHAXVVFEDJE7YPAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
QNKMXCJSGRBEPE6ZNPEXU5EQIOME6EI4DECVC56GLOBCMGWWE6MQC
SUWIERONPDATHPDMZRYO6GYIXSW6XIS5V5MK5IV23DWQH2LL7VIAC
CDFS7Z74W5HKPQIHQICOG442KQFXUSBGGLDDQLE3MG74T44YU6AQC
OFH2B2UZBK43QLFQBZ54FOCFLFNE54BZVDNCEUGDTBCUGNVZULIQC
KAOE5HB3THUKVGFZRO5EZESHEB3Q34WUO5DFMLWIKOBF47LZTIYAC
ZGUJWUFJ4NFFJ6PGXLFGQWCWBCZHPWGWI44NJHJEVPRG5L36PADQC
3EUPIYJNWOMOQBP2Z5SGSMWK453BXJD6KL2WFTR3NM565MEBYASAC
WFMQVPMMOPG5SBJD5LUBOIYWRMXVWK3FXENK7SAEGZ5T6XWFKERQC
YMJQTOLVRYBNHPE6RVL6YB6O5E7TNNGTIBYSQHMR4PHSA233TT4QC
HTR7KACUG3OB7ANWNQDJ2DDSAR2FQY6VLNLRAJ7OWW4P2AX5LOGAC
PZAU2T5ARMRW76OMMHGK25QK4HRQV3HOXFNFZ2Z72HNOLET7W35QC
5MNRCFTWZ5CYLK2HCRMZUUMIXEFTI2KQAICVCFLZJ7F4TDN3IF5QC
bool zapping( zap_type ztype, int power, struct bolt &pbolt,
bool needs_tracer = false, std::string msg = "" );
bool player_tracer( zap_type ztype, int power, struct bolt &pbolt,
int range = 0 );
bool zapping(zap_type ztype, int power, bolt &pbolt,
bool needs_tracer = false, const char* msg = NULL);
bool player_tracer(zap_type ztype, int power, bolt &pbolt, int range = 0);
}
static void _beam_set_default_values(bolt &beam, int power)
{
beam.hit = 0; // default for "0" beams (I think)
beam.damage = dice_def( 1, 0 ); // default for "0" beams (I think)
beam.type = 0; // default for "0" beams
beam.flavour = BEAM_MAGIC; // default for "0" beams
beam.real_flavour = BEAM_MAGIC; // default for "0" beams
beam.ench_power = power;
beam.obvious_effect = false;
beam.is_beam = false; // default for all beams.
beam.is_tracer = false; // default for all player beams
beam.thrower = KILL_YOU_MISSILE; // missile from player
beam.reflections = 0; // no reflections yet
beam.bounces = 0; // no bounces yet
beam.seen = false; // not seen yet
beam.aux_source.clear(); // additional source info, unused
// monsters for *player beams* only! If allies are found, the player is
// prompted to stop or continue.
bool zapping(zap_type ztype, int power, bolt &pbolt, bool needs_tracer,
std::string msg)
// monsters.
bool zapping(zap_type ztype, int power, bolt &pbolt,
bool needs_tracer, const char* msg)
// Check to see if we're blocked by something specifically, we're
// blocked by WALLS. Not statues, idols, etc. Special case:
// Explosion originates from rock/statue (e.g. Lee's rapid
// deconstruction) - in this case, ignore solid cells at the
// center of the explosion.
// Check to see if we're blocked by a wall.