# # ChangeLog for code/branches/steering/cmake # # Generated by Trac 1.0.9 # Dec 25, 2024, 6:58:02 AM Wed, 14 Oct 2009 11:53:59 GMT rgrieder [5948] * code/branches/steering (copied) Creating branch to work on pawn steering. Mon, 12 Oct 2009 18:20:07 GMT rgrieder [5929] * code/trunk (modified) * code/trunk/bin/CMakeLists.txt (modified) * code/trunk/bin/dedicatedClient.bat.in (copied) * code/trunk/bin/dedicatedClient.in (copied) * code/trunk/bin/vld.ini.in (modified) * code/trunk/cmake/CompilerConfigMSVC.cmake (modified) * code/trunk/cmake/ParseMacroArguments.cmake (modified) * code/trunk/cmake/PrecompiledHeaderFiles.cmake (modified) * code/trunk/cmake/SourceFileUtilities.cmake (modified) * code/trunk/cmake/TargetUtilities.cmake (modified) * code/trunk/data/defaultConfig/keybindings.ini (modified) * code/trunk/data/defaultConfig/masterKeybindings.ini (deleted) * code/trunk/data/levels/events.oxw (copied) * code/trunk/data/levels/old/physicstest2.oxw (modified) * code/trunk/data/levels/old/princessaeryn.oxw (modified) * code/trunk/data/levels/old/sample4.oxw (modified) * code/trunk/data/levels/presentation.oxw (modified) * code/trunk/data/levels/presentation09b.oxw (modified) * code/trunk/data/levels/presentation_pong.oxw (modified) * code/trunk/data/levels/princessaeryn.oxw (modified) * code/trunk/data/particle/ExplosionComp1.particle (modified) * code/trunk/data/particle/sparks2.particle (copied) * code/trunk/src/Orxonox.cc (modified) * code/trunk/src/OrxonoxConfig.cmake (modified) * code/trunk/src/external/bullet/BulletCollision/CMakeLists.txt (modified) * code/trunk/src/external/bullet/BulletDynamics/CMakeLists.txt (modified) * code/trunk/src/external/bullet/BulletPrecompiledHeaders.h (deleted) * code/trunk/src/external/bullet/CMakeLists.txt (modified) * code/trunk/src/external/bullet/LinearMath/CMakeLists.txt (modified) * code/trunk/src/external/ceguilua/CMakeLists.txt (modified) * code/trunk/src/external/cpptcl/CMakeLists.txt (modified) * code/trunk/src/external/ogreceguirenderer/CMakeLists.txt (modified) * code/trunk/src/external/ois/CMakeLists.txt (modified) * code/trunk/src/external/ois/changes_orxonox.diff (modified) * code/trunk/src/external/ois/linux/CMakeLists.txt (modified) * code/trunk/src/external/ois/mac/CMakeLists.txt (modified) * code/trunk/src/external/ois/win32/CMakeLists.txt (modified) * code/trunk/src/external/ois/win32/Win32ForceFeedback.cpp (modified) * code/trunk/src/external/tinyxml/CMakeLists.txt (modified) * code/trunk/src/external/tolua/CMakeLists.txt (modified) * code/trunk/src/libraries/CMakeLists.txt (modified) * code/trunk/src/libraries/core/ArgumentCompletionFunctions.cc (modified) * code/trunk/src/libraries/core/BaseObject.cc (modified) * code/trunk/src/libraries/core/BaseObject.h (modified) * code/trunk/src/libraries/core/CMakeLists.txt (modified) * code/trunk/src/libraries/core/ClassFactory.h (modified) * code/trunk/src/libraries/core/ClassTreeMask.cc (modified) * code/trunk/src/libraries/core/ClassTreeMask.h (modified) * code/trunk/src/libraries/core/Clock.cc (deleted) * code/trunk/src/libraries/core/Clock.h (deleted) * code/trunk/src/libraries/core/CommandExecutor.cc (modified) * code/trunk/src/libraries/core/CommandLine.cc (modified) * code/trunk/src/libraries/core/ConfigFileManager.cc (modified) * code/trunk/src/libraries/core/Core.cc (modified) * code/trunk/src/libraries/core/Core.h (modified) * code/trunk/src/libraries/core/CoreIncludes.h (modified) * code/trunk/src/libraries/core/CorePrereqs.h (modified) * code/trunk/src/libraries/core/Event.cc (modified) * code/trunk/src/libraries/core/Event.h (modified) * code/trunk/src/libraries/core/EventIncludes.h (modified) * code/trunk/src/libraries/core/Factory.cc (deleted) * code/trunk/src/libraries/core/Factory.h (deleted) * code/trunk/src/libraries/core/Functor.h (modified) * code/trunk/src/libraries/core/GUIManager.cc (modified) * code/trunk/src/libraries/core/GUIManager.h (modified) * code/trunk/src/libraries/core/Game.cc (modified) * code/trunk/src/libraries/core/Game.h (modified) * code/trunk/src/libraries/core/GameMode.cc (modified) * code/trunk/src/libraries/core/GameMode.h (modified) * code/trunk/src/libraries/core/GameState.h (modified) * code/trunk/src/libraries/core/GraphicsManager.cc (modified) * code/trunk/src/libraries/core/GraphicsManager.h (modified) * code/trunk/src/libraries/core/Identifier.cc (modified) * code/trunk/src/libraries/core/Identifier.h (modified) * code/trunk/src/libraries/core/Iterator.h (modified) * code/trunk/src/libraries/core/Language.cc (modified) * code/trunk/src/libraries/core/Loader.cc (modified) * code/trunk/src/libraries/core/LuaState.cc (modified) * code/trunk/src/libraries/core/MemoryArchive.cc (modified) * code/trunk/src/libraries/core/ObjectListIterator.h (modified) * code/trunk/src/libraries/core/OrxonoxClass.cc (modified) * code/trunk/src/libraries/core/OrxonoxClass.h (modified) * code/trunk/src/libraries/core/PathConfig.cc (copied) * code/trunk/src/libraries/core/PathConfig.h (copied) * code/trunk/src/libraries/core/Resource.h (modified) * code/trunk/src/libraries/core/ScopedSingletonManager.cc (copied) * code/trunk/src/libraries/core/ScopedSingletonManager.h (copied) * code/trunk/src/libraries/core/Shell.cc (modified) * code/trunk/src/libraries/core/SmartPtr.h (copied) * code/trunk/src/libraries/core/SubclassIdentifier.h (copied) * code/trunk/src/libraries/core/Super.h (modified) * code/trunk/src/libraries/core/TclBind.cc (modified) * code/trunk/src/libraries/core/TclThreadManager.cc (modified) * code/trunk/src/libraries/core/WeakPtr.h (copied) * code/trunk/src/libraries/core/XMLPort.h (modified) * code/trunk/src/libraries/core/input/Button.cc (modified) * code/trunk/src/libraries/core/input/CMakeLists.txt (modified) * code/trunk/src/libraries/core/input/InputDevice.h (modified) * code/trunk/src/libraries/core/input/InputManager.cc (modified) * code/trunk/src/libraries/core/input/InputManager.h (modified) * code/trunk/src/libraries/core/input/InputState.cc (modified) * code/trunk/src/libraries/core/input/InputState.h (modified) * code/trunk/src/libraries/core/input/KeyBinder.cc (modified) * code/trunk/src/libraries/core/input/KeyBinder.h (modified) * code/trunk/src/libraries/core/input/KeyBinderManager.cc (copied) * code/trunk/src/libraries/core/input/KeyBinderManager.h (copied) * code/trunk/src/libraries/core/input/KeyDetector.cc (modified) * code/trunk/src/libraries/core/input/KeyDetector.h (modified) * code/trunk/src/libraries/core/input/Mouse.cc (modified) * code/trunk/src/libraries/network/Client.cc (modified) * code/trunk/src/libraries/network/Client.h (modified) * code/trunk/src/libraries/network/ClientConnection.cc (modified) * code/trunk/src/libraries/network/ClientConnection.h (modified) * code/trunk/src/libraries/network/ClientConnectionListener.cc (modified) * code/trunk/src/libraries/network/ClientConnectionListener.h (modified) * code/trunk/src/libraries/network/Connection.cc (modified) * code/trunk/src/libraries/network/Connection.h (modified) * code/trunk/src/libraries/network/GamestateClient.cc (modified) * code/trunk/src/libraries/network/GamestateManager.cc (modified) * code/trunk/src/libraries/network/NetworkFunction.cc (modified) * code/trunk/src/libraries/network/NetworkPrereqs.h (modified) * code/trunk/src/libraries/network/Server.cc (modified) * code/trunk/src/libraries/network/Server.h (modified) * code/trunk/src/libraries/network/ServerConnection.cc (modified) * code/trunk/src/libraries/network/ServerConnection.h (modified) * code/trunk/src/libraries/network/packet/CMakeLists.txt (modified) * code/trunk/src/libraries/network/packet/ClassID.cc (modified) * code/trunk/src/libraries/network/packet/Gamestate.cc (modified) * code/trunk/src/libraries/network/synchronisable/Synchronisable.cc (modified) * code/trunk/src/libraries/network/synchronisable/Synchronisable.h (modified) * code/trunk/src/libraries/tools/CMakeLists.txt (modified) * code/trunk/src/libraries/tools/ResourceLocation.cc (modified) * code/trunk/src/libraries/tools/Timer.cc (modified) * code/trunk/src/libraries/tools/Timer.h (modified) * code/trunk/src/libraries/tools/ToolsPrecompiledHeaders.h (deleted) * code/trunk/src/libraries/tools/ToolsPrereqs.h (modified) * code/trunk/src/libraries/util/CMakeLists.txt (modified) * code/trunk/src/libraries/util/Clock.cc (copied) * code/trunk/src/libraries/util/Clock.h (copied) * code/trunk/src/libraries/util/Scope.h (modified) * code/trunk/src/libraries/util/ScopedSingleton.h (deleted) * code/trunk/src/libraries/util/Singleton.h (modified) * code/trunk/src/libraries/util/UtilPrereqs.h (modified) * code/trunk/src/modules/CMakeLists.txt (modified) * code/trunk/src/modules/gamestates (deleted) * code/trunk/src/modules/objects/Attacher.cc (modified) * code/trunk/src/modules/objects/ObjectsPrereqs.h (modified) * code/trunk/src/modules/objects/Planet.cc (modified) * code/trunk/src/modules/objects/eventsystem/CMakeLists.txt (modified) * code/trunk/src/modules/objects/eventsystem/EventDispatcher.cc (modified) * code/trunk/src/modules/objects/eventsystem/EventDispatcher.h (modified) * code/trunk/src/modules/objects/eventsystem/EventFilter.cc (copied) * code/trunk/src/modules/objects/eventsystem/EventFilter.h (copied) * code/trunk/src/modules/objects/eventsystem/EventListener.cc (modified) * code/trunk/src/modules/objects/eventsystem/EventListener.h (modified) * code/trunk/src/modules/objects/eventsystem/EventName.cc (copied) * code/trunk/src/modules/objects/eventsystem/EventName.h (copied) * code/trunk/src/modules/objects/eventsystem/EventTarget.cc (modified) * code/trunk/src/modules/objects/eventsystem/EventTarget.h (modified) * code/trunk/src/modules/objects/triggers/CheckPoint.cc (modified) * code/trunk/src/modules/objects/triggers/EventTrigger.cc (modified) * code/trunk/src/modules/objects/triggers/EventTrigger.h (modified) * code/trunk/src/modules/objects/triggers/Trigger.cc (modified) * code/trunk/src/modules/overlays/FadeoutText.cc (modified) * code/trunk/src/modules/overlays/FadeoutText.h (modified) * code/trunk/src/modules/overlays/OverlaysPrereqs.h (modified) * code/trunk/src/modules/overlays/hud/ChatOverlay.cc (modified) * code/trunk/src/modules/overlays/hud/ChatOverlay.h (modified) * code/trunk/src/modules/overlays/hud/HUDBar.cc (modified) * code/trunk/src/modules/overlays/hud/HUDHealthBar.cc (modified) * code/trunk/src/modules/overlays/hud/HUDHealthBar.h (modified) * code/trunk/src/modules/overlays/hud/HUDNavigation.cc (modified) * code/trunk/src/modules/overlays/hud/TeamBaseMatchScore.cc (modified) * code/trunk/src/modules/overlays/hud/UnderAttackHealthBar.cc (modified) * code/trunk/src/modules/overlays/hud/UnderAttackHealthBar.h (modified) * code/trunk/src/modules/overlays/stats/CreateLines.cc (modified) * code/trunk/src/modules/overlays/stats/Scoreboard.cc (modified) * code/trunk/src/modules/overlays/stats/Scoreboard.h (modified) * code/trunk/src/modules/pong/CMakeLists.txt (modified) * code/trunk/src/modules/pong/Pong.cc (modified) * code/trunk/src/modules/pong/Pong.h (modified) * code/trunk/src/modules/pong/PongAI.cc (modified) * code/trunk/src/modules/pong/PongAI.h (modified) * code/trunk/src/modules/pong/PongBall.cc (modified) * code/trunk/src/modules/pong/PongBall.h (modified) * code/trunk/src/modules/pong/PongCenterpoint.cc (modified) * code/trunk/src/modules/pong/PongCenterpoint.h (modified) * code/trunk/src/modules/pong/PongPrecompiledHeaders.h (deleted) * code/trunk/src/modules/pong/PongPrereqs.h (modified) * code/trunk/src/modules/pong/PongScore.cc (modified) * code/trunk/src/modules/questsystem/QuestEffectBeacon.cc (modified) * code/trunk/src/modules/questsystem/QuestEffectBeacon.h (modified) * code/trunk/src/modules/questsystem/QuestGUI.cc (modified) * code/trunk/src/modules/questsystem/QuestManager.cc (modified) * code/trunk/src/modules/questsystem/QuestManager.h (modified) * code/trunk/src/modules/questsystem/QuestsystemPrecompiledHeaders.h (modified) * code/trunk/src/modules/questsystem/QuestsystemPrereqs.h (modified) * code/trunk/src/modules/questsystem/notifications/NotificationManager.cc (modified) * code/trunk/src/modules/questsystem/notifications/NotificationManager.h (modified) * code/trunk/src/modules/questsystem/notifications/NotificationQueue.cc (modified) * code/trunk/src/modules/weapons/MuzzleFlash.cc (modified) * code/trunk/src/modules/weapons/MuzzleFlash.h (modified) * code/trunk/src/modules/weapons/WeaponsPrereqs.h (modified) * code/trunk/src/modules/weapons/munitions/ReplenishingMunition.cc (modified) * code/trunk/src/modules/weapons/munitions/ReplenishingMunition.h (modified) * code/trunk/src/modules/weapons/projectiles/LightningGunProjectile.cc (modified) * code/trunk/src/modules/weapons/projectiles/LightningGunProjectile.h (modified) * code/trunk/src/modules/weapons/projectiles/ParticleProjectile.cc (modified) * code/trunk/src/modules/weapons/projectiles/Projectile.cc (modified) * code/trunk/src/modules/weapons/projectiles/Projectile.h (modified) * code/trunk/src/modules/weapons/weaponmodes/EnergyDrink.cc (modified) * code/trunk/src/modules/weapons/weaponmodes/EnergyDrink.h (modified) * code/trunk/src/modules/weapons/weaponmodes/HsW01.cc (modified) * code/trunk/src/modules/weapons/weaponmodes/HsW01.h (modified) * code/trunk/src/orxonox/CMakeLists.txt (modified) * code/trunk/src/orxonox/CameraManager.cc (modified) * code/trunk/src/orxonox/CameraManager.h (modified) * code/trunk/src/orxonox/Level.cc (modified) * code/trunk/src/orxonox/Level.h (modified) * code/trunk/src/orxonox/LevelManager.cc (modified) * code/trunk/src/orxonox/Main.cc (modified) * code/trunk/src/orxonox/OrxonoxPrereqs.h (modified) * code/trunk/src/orxonox/PawnManager.cc (modified) * code/trunk/src/orxonox/PlayerManager.cc (modified) * code/trunk/src/orxonox/PlayerManager.h (modified) * code/trunk/src/orxonox/Radar.cc (modified) * code/trunk/src/orxonox/Radar.h (modified) * code/trunk/src/orxonox/Scene.cc (modified) * code/trunk/src/orxonox/Scene.h (modified) * code/trunk/src/orxonox/Test.cc (modified) * code/trunk/src/orxonox/collisionshapes/CompoundCollisionShape.cc (modified) * code/trunk/src/orxonox/collisionshapes/WorldEntityCollisionShape.cc (modified) * code/trunk/src/orxonox/controllers/AIController.cc (modified) * code/trunk/src/orxonox/controllers/AIController.h (modified) * code/trunk/src/orxonox/controllers/ArtificialController.cc (modified) * code/trunk/src/orxonox/controllers/ArtificialController.h (modified) * code/trunk/src/orxonox/controllers/HumanController.cc (modified) * code/trunk/src/orxonox/controllers/HumanController.h (modified) * code/trunk/src/orxonox/controllers/WaypointController.cc (modified) * code/trunk/src/orxonox/controllers/WaypointPatrolController.cc (modified) * code/trunk/src/orxonox/controllers/WaypointPatrolController.h (modified) * code/trunk/src/orxonox/gamestates (copied) * code/trunk/src/orxonox/gamestates/CMakeLists.txt (copied) * code/trunk/src/orxonox/gamestates/GSClient.cc (copied) * code/trunk/src/orxonox/gamestates/GSClient.h (copied) * code/trunk/src/orxonox/gamestates/GSDedicated.cc (copied) * code/trunk/src/orxonox/gamestates/GSDedicated.h (copied) * code/trunk/src/orxonox/gamestates/GSDedicatedClient.cc (copied) * code/trunk/src/orxonox/gamestates/GSDedicatedClient.h (copied) * code/trunk/src/orxonox/gamestates/GSGraphics.cc (copied) * code/trunk/src/orxonox/gamestates/GSGraphics.h (copied) * code/trunk/src/orxonox/gamestates/GSIOConsole.cc (copied) * code/trunk/src/orxonox/gamestates/GSIOConsole.h (copied) * code/trunk/src/orxonox/gamestates/GSLevel.cc (copied) * code/trunk/src/orxonox/gamestates/GSLevel.h (copied) * code/trunk/src/orxonox/gamestates/GSMainMenu.cc (copied) * code/trunk/src/orxonox/gamestates/GSMainMenu.h (copied) * code/trunk/src/orxonox/gamestates/GSRoot.cc (copied) * code/trunk/src/orxonox/gamestates/GSRoot.h (copied) * code/trunk/src/orxonox/gamestates/GSServer.cc (copied) * code/trunk/src/orxonox/gamestates/GSServer.h (copied) * code/trunk/src/orxonox/gamestates/GSStandalone.cc (copied) * code/trunk/src/orxonox/gamestates/GSStandalone.h (copied) * code/trunk/src/orxonox/gametypes/Asteroids.cc (modified) * code/trunk/src/orxonox/gametypes/Gametype.cc (modified) * code/trunk/src/orxonox/gametypes/Gametype.h (modified) * code/trunk/src/orxonox/gametypes/TeamBaseMatch.cc (modified) * code/trunk/src/orxonox/gametypes/TeamBaseMatch.h (modified) * code/trunk/src/orxonox/gametypes/TeamDeathmatch.cc (modified) * code/trunk/src/orxonox/gametypes/UnderAttack.cc (modified) * code/trunk/src/orxonox/gametypes/UnderAttack.h (modified) * code/trunk/src/orxonox/graphics/CMakeLists.txt (modified) * code/trunk/src/orxonox/graphics/Camera.cc (modified) * code/trunk/src/orxonox/graphics/FadingBillboard.cc (modified) * code/trunk/src/orxonox/graphics/FadingBillboard.h (modified) * code/trunk/src/orxonox/graphics/ParticleEmitter.cc (modified) * code/trunk/src/orxonox/graphics/ParticleSpawner.cc (modified) * code/trunk/src/orxonox/graphics/ParticleSpawner.h (modified) * code/trunk/src/orxonox/infos/HumanPlayer.cc (modified) * code/trunk/src/orxonox/infos/PlayerInfo.cc (modified) * code/trunk/src/orxonox/infos/PlayerInfo.h (modified) * code/trunk/src/orxonox/interfaces/InterfaceCompilation.cc (modified) * code/trunk/src/orxonox/interfaces/NotificationListener.h (modified) * code/trunk/src/orxonox/interfaces/PawnListener.h (deleted) * code/trunk/src/orxonox/interfaces/RadarViewable.cc (modified) * code/trunk/src/orxonox/items/Engine.cc (modified) * code/trunk/src/orxonox/items/Engine.h (modified) * code/trunk/src/orxonox/items/MultiStateEngine.cc (modified) * code/trunk/src/orxonox/overlays/CMakeLists.txt (modified) * code/trunk/src/orxonox/overlays/InGameConsole.cc (modified) * code/trunk/src/orxonox/overlays/InGameConsole.h (modified) * code/trunk/src/orxonox/overlays/Map.cc (modified) * code/trunk/src/orxonox/overlays/OrxonoxOverlay.h (modified) * code/trunk/src/orxonox/overlays/OverlayGroup.cc (modified) * code/trunk/src/orxonox/pickup/DroppedItem.cc (modified) * code/trunk/src/orxonox/pickup/DroppedItem.h (modified) * code/trunk/src/orxonox/pickup/ModifierPickup.cc (modified) * code/trunk/src/orxonox/pickup/ModifierPickup.h (modified) * code/trunk/src/orxonox/pickup/PickupSpawner.cc (modified) * code/trunk/src/orxonox/pickup/PickupSpawner.h (modified) * code/trunk/src/orxonox/pickup/items/HealthImmediate.cc (modified) * code/trunk/src/orxonox/pickup/items/HealthUsable.cc (modified) * code/trunk/src/orxonox/pickup/items/Jump.cc (modified) * code/trunk/src/orxonox/sound/AmbientSound.cc (copied) * code/trunk/src/orxonox/sound/AmbientSound.h (copied) * code/trunk/src/orxonox/sound/BaseSound.cc (copied) * code/trunk/src/orxonox/sound/BaseSound.h (copied) * code/trunk/src/orxonox/sound/CMakeLists.txt (modified) * code/trunk/src/orxonox/sound/SoundBase.cc (deleted) * code/trunk/src/orxonox/sound/SoundBase.h (deleted) * code/trunk/src/orxonox/sound/SoundMainMenu.cc (deleted) * code/trunk/src/orxonox/sound/SoundMainMenu.h (deleted) * code/trunk/src/orxonox/sound/SoundManager.cc (modified) * code/trunk/src/orxonox/sound/SoundManager.h (modified) * code/trunk/src/orxonox/sound/WorldSound.cc (copied) * code/trunk/src/orxonox/sound/WorldSound.h (copied) * code/trunk/src/orxonox/weaponsystem/Munition.cc (modified) * code/trunk/src/orxonox/weaponsystem/Munition.h (modified) * code/trunk/src/orxonox/weaponsystem/Weapon.cc (modified) * code/trunk/src/orxonox/weaponsystem/Weapon.h (modified) * code/trunk/src/orxonox/weaponsystem/WeaponMode.cc (modified) * code/trunk/src/orxonox/weaponsystem/WeaponMode.h (modified) * code/trunk/src/orxonox/weaponsystem/WeaponPack.cc (modified) * code/trunk/src/orxonox/weaponsystem/WeaponSlot.cc (modified) * code/trunk/src/orxonox/weaponsystem/WeaponSystem.cc (modified) * code/trunk/src/orxonox/worldentities/BigExplosion.cc (modified) * code/trunk/src/orxonox/worldentities/BigExplosion.h (modified) * code/trunk/src/orxonox/worldentities/CameraPosition.cc (modified) * code/trunk/src/orxonox/worldentities/ControllableEntity.cc (modified) * code/trunk/src/orxonox/worldentities/ControllableEntity.h (modified) * code/trunk/src/orxonox/worldentities/ExplosionChunk.cc (modified) * code/trunk/src/orxonox/worldentities/ExplosionChunk.h (modified) * code/trunk/src/orxonox/worldentities/MovableEntity.cc (modified) * code/trunk/src/orxonox/worldentities/MovableEntity.h (modified) * code/trunk/src/orxonox/worldentities/SpawnPoint.cc (modified) * code/trunk/src/orxonox/worldentities/SpawnPoint.h (modified) * code/trunk/src/orxonox/worldentities/WorldEntity.cc (modified) * code/trunk/src/orxonox/worldentities/pawns/Destroyer.cc (modified) * code/trunk/src/orxonox/worldentities/pawns/Pawn.cc (modified) * code/trunk/src/orxonox/worldentities/pawns/SpaceShip.cc (modified) * code/trunk/src/orxonox/worldentities/pawns/Spectator.cc (modified) * code/trunk/src/orxonox/worldentities/pawns/TeamBaseMatchBase.cc (modified) Merged core5 branch back to the trunk. Key features include clean ...