#define TURF_REMOVE_CROWBAR 1 #define TURF_REMOVE_SCREWDRIVER 2 #define TURF_REMOVE_SHOVEL 4 #define TURF_REMOVE_WRENCH 8 #define TURF_CAN_BREAK 16 #define TURF_CAN_BURN 32 #define TURF_HAS_EDGES 64 #define TURF_HAS_CORNERS 128 #define TURF_IS_FRAGILE 256 #define TURF_ACID_IMMUNE 512 // The 0x800000 is blocked by INITIALIZED, do NOT use it! //Used for floor/wall smoothing #define SMOOTH_NONE 0 //Smooth only with itself #define SMOOTH_ALL 1 //Smooth with all of type #define SMOOTH_WHITELIST 2 //Smooth with a whitelist of subtypes #define SMOOTH_BLACKLIST 3 //Smooth with all but a blacklist of subtypes #define SMOOTH_GREYLIST 4 // Use a whitelist and a blacklist at the same time. atom smoothing only #define isCardinal(x) (x == NORTH || x == SOUTH || x == EAST || x == WEST) #define isDiagonal(x) (x == NORTHEAST || x == SOUTHEAST || x == NORTHWEST || x == SOUTHWEST) #define IS_OPAQUE_TURF(turf) (turf.directional_opacity == ALL_CARDINALS) #define IS_OPAQUE_TURF_DIR(turf, dir) (turf.directional_opacity & dir) #define FOOTSTEP_SPRITE_AMT 2 // Used to designate if a turf (or its area) should initialize as outdoors or not. #define OUTDOORS_YES 1 // This being 1 helps with backwards compatibility. #define OUTDOORS_NO 0 // Ditto. #define OUTDOORS_AREA -1 // If a turf has this, it will defer to the area's settings on init. // Note that after init, it will be either YES or NO. //supposedly the fastest way to do this according to https://gist.github.com/Giacom/be635398926bb463b42a ///Returns a list of turf in a square #define RECT_TURFS(H_RADIUS, V_RADIUS, CENTER) \ block( \ locate(max(CENTER.x-(H_RADIUS),1), max(CENTER.y-(V_RADIUS),1), CENTER.z), \ locate(min(CENTER.x+(H_RADIUS),world.maxx), min(CENTER.y+(V_RADIUS),world.maxy), CENTER.z) \ )