well, I saw this in vanilla cataclysm. In weather.cpp we have two subroutines which define applying weather penalties. These are:
and
They all cast PLAYER_OUTSIDE macro which is defined in this way:
As we can see, this macro calls is_outside method for map instance. Let us have a look at it at map.cpp:
[code]
bool map::is_outside(const int x, const int y)
{
if(!INBOUNDS(x, y))
return true;
return outside_cache[x][y];
}[/code]
I am not sure about INBOUNDS macro but map::build_outside_cache subroutine defines that outside_cache bool array. Soo…
If you’re standing on floor, rock floor, wax floor, fema groundsheet, dirt floor, bed, makeshift bed, groundsheet you’re protected from weather effects. Otherwise expect ‘wet’ penalties.
Actually I find this mechanism to be strange.