#include bool IsValidGameTile(int Index) { return ( Index == TILE_AIR || (Index >= TILE_SOLID && Index <= TILE_NOLASER) || Index == TILE_THROUGH || Index == TILE_FREEZE || (Index >= TILE_UNFREEZE && Index <= TILE_DUNFREEZE) || (Index >= TILE_WALLJUMP && Index <= TILE_SOLO_END) || (Index >= TILE_REFILL_JUMPS && Index <= TILE_STOPA) || (Index >= TILE_CP && Index <= TILE_THROUGH_DIR) || (Index >= TILE_OLDLASER && Index <= TILE_UNLOCK_TEAM) || (Index >= TILE_NPC_END && Index <= TILE_NPH_END) || (Index >= TILE_TELE_GUN_ENABLE && Index <= TILE_TELE_GUN_DISABLE) || (Index >= TILE_TELE_GRENADE_ENABLE && Index <= TILE_TELE_GRENADE_DISABLE) || (Index >= TILE_TELE_LASER_ENABLE && Index <= TILE_TELE_LASER_DISABLE) || (Index >= TILE_NPC_START && Index <= TILE_NPH_START) || (Index >= TILE_ENTITIES_OFF_1 && Index <= TILE_ENTITIES_OFF_2) || IsValidEntity(Index) ); } bool IsValidFrontTile(int Index) { return ( Index == TILE_AIR || Index == TILE_DEATH || (Index >= TILE_NOLASER && Index <= TILE_THROUGH) || Index == TILE_FREEZE || (Index >= TILE_UNFREEZE && Index <= TILE_DUNFREEZE) || (Index >= TILE_WALLJUMP && Index <= TILE_SOLO_END) || (Index >= TILE_REFILL_JUMPS && Index <= TILE_STOPA) || (Index >= TILE_CP && Index <= TILE_THROUGH_DIR) || (Index >= TILE_OLDLASER && Index <= TILE_UNLOCK_TEAM) || (Index >= TILE_NPC_END && Index <= TILE_NPH_END) || (Index >= TILE_TELE_GUN_ENABLE && Index <= TILE_ALLOW_BLUE_TELE_GUN) || (Index >= TILE_TELE_GRENADE_ENABLE && Index <= TILE_TELE_GRENADE_DISABLE) || (Index >= TILE_TELE_LASER_ENABLE && Index <= TILE_TELE_LASER_DISABLE) || (Index >= TILE_NPC_START && Index <= TILE_NPH_START) || IsValidEntity(Index) ); } bool IsValidTeleTile(int Index) { return ( Index == TILE_TELEINEVIL || Index == TILE_TELEINWEAPON || Index == TILE_TELEINHOOK || Index == TILE_TELEIN || Index == TILE_TELEOUT || Index == TILE_TELECHECK || Index == TILE_TELECHECKOUT || Index == TILE_TELECHECKIN || Index == TILE_TELECHECKINEVIL ); } bool IsValidSpeedupTile(int Index) { return Index == TILE_BOOST; } bool IsValidSwitchTile(int Index) { return ( Index == TILE_JUMP || Index == TILE_FREEZE || Index == TILE_DFREEZE || Index == TILE_DUNFREEZE || Index == TILE_HIT_START || Index == TILE_HIT_END || (Index >= TILE_SWITCHTIMEDOPEN && Index <= TILE_SWITCHCLOSE) || Index == TILE_PENALTY || Index == TILE_BONUS || Index == TILE_ALLOW_TELE_GUN || Index == TILE_ALLOW_BLUE_TELE_GUN || IsValidEntity(Index) ); } bool IsValidTuneTile(int Index) { return Index == TILE_TUNE1; } bool IsValidEntity(int Index) { Index -= ENTITY_OFFSET; return ( (Index >= ENTITY_SPAWN && Index <= ENTITY_LASER_O_FAST) || (Index >= ENTITY_PLASMAE && Index <= ENTITY_CRAZY_SHOTGUN) || (Index >= ENTITY_DRAGGER_WEAK && Index <= ENTITY_DRAGGER_STRONG_NW) || Index == ENTITY_DOOR ); } bool IsRotatableTile(int Index) { return ( Index == TILE_STOP || Index == TILE_STOPS || Index == TILE_CP || Index == TILE_CP_F || Index == TILE_THROUGH_DIR || Index == TILE_ENTITIES_OFF_1 || Index == TILE_ENTITIES_OFF_2 || Index - ENTITY_OFFSET == ENTITY_CRAZY_SHOTGUN_EX || Index - ENTITY_OFFSET == ENTITY_CRAZY_SHOTGUN ); }