#ifndef SALAMANDER_H
#define SALAMANDER_H

/*
** This is the precompiled header for Salamander. It includes common and regularly used classes, globals, macros and defines.
** It should be included at the top of every source file in the project.
*/

/*
** Defines, globals
*/
#include "Globals.h"
#include "Types.h"
#include "Macros.h"

/*
** Standard C and C++ libraries
*/
#include <algorithm>
#include <iostream>
#include <fstream>
#include <map>
#include <string>
#include <typeinfo>
#include <vector>

#include <cfloat>
#include <ctime>
#include <cmath>

/*
** Memory Manager
*/
//#include "mmgr.h"

/*
** Most classes require UniqueId
*/
#include "UniqueId.h"

/*
** Utility classes
*/
#include "BlendMode.h"
#include "Events.h"
#include "FileIO.h"
#include "Mat.h"
#include "Mat2.h"
#include "PixelFormat.h"
#include "STLScribe.h"
#include "Stream.h"
#include "StreamData.h"
#include "Vec.h"
#include "Vec2.h"
#include "Vec3.h"
#include "Vec4.h"

/*
** Renderer classes
*/
#include "Geometry.h"
#include "SDLTexture.h"
#include "Visual.h"

/*
** Scene graph classes
*/
#include "Entity.h"
#include "Sprite.h"

/*
** Physics classes
*/
#include "Body.h"

/*
** Application classes
*/
#include "Application.h"
#include "AssetManager.h"
#include "SDLPlatformManager.h"
#include "SDLVisualManager.h"
#include "SceneManager.h"
#include "ScreenManager.h"

/*
** Automatic registrations
*/
#include "Registrations.h"

#endif // SALAMANDER_H
