// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//

#pragma once
//#include "targetver.h"

#define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers
#define NOMINMAX                        // Prevent the definition of min and max in the Windows header file
// Windows Header Files:
#include <windows.h>

// C RunTime Header Files
//#include <stdlib.h>
//#include <malloc.h>
//#include <memory.h>
//#include <tchar.h>

#include <iostream>
#include <cmath>
#include <cassert>
#include <algorithm>
#include <functional>
#include <exception>
#include <sstream>
#include <vector>
#include <deque>
#include <list>
#include <set>
#include <map>
#include <hash_set>
#include <hash_map>
#include <boost/numeric/conversion/bounds.hpp>
#include <boost/iterator/transform_iterator.hpp>
#include <boost/iterator/filter_iterator.hpp>
#include <boost/tuple/tuple.hpp>
#include <boost/utility.hpp>
#include <boost/circular_buffer.hpp>
#include <boost/bind.hpp>
#include <boost/unordered_map.hpp>
#include <boost/function.hpp>
#include <boost/version.hpp>
#include <boost/static_assert.hpp>

#include <BWAPI.h>

#include "../Utils/Functors.h"
#include "../Utils/ReferenceCounted.h"
#include "../Utils/Stopwatch.h"
#include "../Utils/Tracked.h"
#include "../Utils/Utils.h"
#include "BWAPI_Addon.h"
#include "SparAIContainer.h"
#include "UnitData.h"
#include "Utils/Component.h"
#include "Utils/Event.h"
#include "Utils/EventHandler.h"
#include "Utils/Functors.h"
#include "Utils/Logger.h"
#include "Utils/PersistentUnitGroup.h"
#include "Utils/RaiseEventTask.h"
#include "Utils/ReferenceCountedComponent.h"
#include "Utils/SafeList.h"
#include "Utils/SafeMultiset.h"
#include "Utils/SystemUtils.h"
#include "Utils/Task.h"
#include "Utils/Utils.h"
#include "Utils/Process/FSM/Condition.h"
#include "Utils/Process/FSM/FSM.h"
#include "Utils/Process/FSM/FSMState.h"
#include "Utils/Process/FSM/Transition.h"
#include "Utils/Process/GroupProcess.h"
#include "Utils/Process/PeriodicProcess.h"
#include "Utils/Process/Process.h"
#include "Utils/Process/ProcessContainer.h"
#include "Scheduler/Timer.h"
#include "DecisionMaking/Layer1Reactive/Layer1FSM/Layer1FSM.h"

namespace my_conditions {
   BOOST_STATIC_ASSERT_MSG((BOOST_VERSION / 100000) >= 1 && (BOOST_VERSION / 100 % 1000) >= 43, "Vous devez utiliser la version 1.43 de boost au moins http://www.boostpro.com/download/");
}