Fixed '5' resting being broken.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@788 c06c8d41-db1a-0410-9941-cceddc491573
UDYVF65OZSNPANLHDI3ODBEGUAKAVZ4KH4OZFAKR2CQJPO4AXU6QC
R325RPUV26YH65VIJKYEFZ2XCVXQHO5N3ELPX6RNQ5TSI3JJNQGQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
3YK4G4IQBXW63HPGU5WRTV6L2FCMKAK4DOTCHFK2FNSB5B3Y3PVQC
ZP2KE7A2LE7Z2S7AC45WE4CXDSEVDTWIMV2EM4IBUKXYJIDU6R7QC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
const int cloud_type = env.cloud[ cloud ].type;
return cloud_type == CLOUD_GREY_SMOKE ||
cloud_type == CLOUD_GREY_SMOKE_MON ||
cloud_type == CLOUD_BLUE_SMOKE ||
cloud_type == CLOUD_BLUE_SMOKE_MON ||
cloud_type == CLOUD_PURP_SMOKE ||
cloud_type == CLOUD_PURP_SMOKE_MON ||
cloud_type == CLOUD_BLACK_SMOKE ||
cloud_type == CLOUD_BLACK_SMOKE_MON ||
cloud_type == CLOUD_MIST;
const cloud_type ctype = (cloud_type) env.cloud[ cloud ].type;
return !is_damaging_cloud(ctype);
bool is_damaging_cloud(cloud_type type)
{
switch (type)
{
case CLOUD_FIRE:
case CLOUD_FIRE_MON:
case CLOUD_STINK:
case CLOUD_STINK_MON:
case CLOUD_COLD:
case CLOUD_COLD_MON:
case CLOUD_POISON:
case CLOUD_POISON_MON:
case CLOUD_STEAM:
case CLOUD_STEAM_MON:
case CLOUD_MIASMA:
case CLOUD_MIASMA_MON:
return (true);
default:
return (false);
}
}
std::string cloud_name(cloud_type type)
{
switch (type)
{
case CLOUD_FIRE:
case CLOUD_FIRE_MON:
return "flame";
case CLOUD_STINK:
case CLOUD_STINK_MON:
return "noxious fumes";
case CLOUD_COLD:
case CLOUD_COLD_MON:
return "freezing vapour";
case CLOUD_POISON:
case CLOUD_POISON_MON:
return "poison gases";
case CLOUD_GREY_SMOKE:
case CLOUD_GREY_SMOKE_MON:
return "grey smoke";
case CLOUD_BLUE_SMOKE:
case CLOUD_BLUE_SMOKE_MON:
return "blue smoke";
case CLOUD_PURP_SMOKE:
case CLOUD_PURP_SMOKE_MON:
return "purple smoke";
case CLOUD_STEAM:
case CLOUD_STEAM_MON:
return "steam";
case CLOUD_MIASMA:
case CLOUD_MIASMA_MON:
return "foul pestilence";
case CLOUD_BLACK_SMOKE:
case CLOUD_BLACK_SMOKE_MON:
return "black smoke";
case CLOUD_MIST:
return "thin mist";
default:
return "buggy goodness";
}
}
return false;
if (in_bounds(you.x_pos, you.y_pos)
&& env.cgrid[you.x_pos][you.y_pos] != EMPTY_CLOUD)
{
const cloud_type type = (cloud_type)
env.cloud[ env.cgrid[you.x_pos][you.y_pos] ].type;
if (is_damaging_cloud(type))
{
if (announce)
mprf(MSGCH_WARN, "You're standing in a cloud of %s!",
cloud_name(type).c_str());
return (false);
}
strcpy(info, "There is a cloud of ");
strcat(info,
(cloud_type == CLOUD_FIRE
|| cloud_type == CLOUD_FIRE_MON) ? "flame" :
(cloud_type == CLOUD_STINK
|| cloud_type == CLOUD_STINK_MON) ? "noxious fumes" :
(cloud_type == CLOUD_COLD
|| cloud_type == CLOUD_COLD_MON) ? "freezing vapour" :
(cloud_type == CLOUD_POISON
|| cloud_type == CLOUD_POISON_MON) ? "poison gases" :
(cloud_type == CLOUD_GREY_SMOKE
|| cloud_type == CLOUD_GREY_SMOKE_MON) ? "grey smoke" :
(cloud_type == CLOUD_BLUE_SMOKE
|| cloud_type == CLOUD_BLUE_SMOKE_MON) ? "blue smoke" :
(cloud_type == CLOUD_PURP_SMOKE
|| cloud_type == CLOUD_PURP_SMOKE_MON) ? "purple smoke" :
(cloud_type == CLOUD_STEAM
|| cloud_type == CLOUD_STEAM_MON) ? "steam" :
(cloud_type == CLOUD_MIASMA
|| cloud_type == CLOUD_MIASMA_MON) ? "foul pestilence" :
(cloud_type == CLOUD_BLACK_SMOKE
|| cloud_type == CLOUD_BLACK_SMOKE_MON) ? "black smoke" :
(cloud_type == CLOUD_MIST)? "thin mist" :
"buggy goodness");
strcat(info, " here.");
mpr(info);
mprf("There is a cloud of %s here.", cloud_name(ctype).c_str());