# This repository
rts                               Spring engine source code
rts/build                         Project files / build scripts
rts/build/cmake                   CMake build files (for Linux, Windows, OS X)
rts/build/vstudio8                Visual Studio 8 project files
rts/build/vstudio9                Visual Studio 9 project files
rts/builds                        build scripts for different builds of the engine (CMake)
rts/builds/default                default engine (single threaded) build scripts (CMake)
rts/builds/GML                    MT graphics engine (GML) build scripts (CMake)
rts/builds/DS                     Dedicated Server build scripts (CMake)
rts/builds/HL                     Headless client (no graphics, no sound) build scripts (CMake)
rts/ExternalAI                    engine side AI interface
rts/ExternalAI/Interface          AI side AI interface (also used by the engine)
rts/Game                          General game code
rts/Game/Camera                   different camera implementations
rts/Game/Players                  Player related structs
rts/Game/StartScripts             Hardcoded startscripts
rts/Game/UI                       Game controls including current gui
rts/Game/GUI                      pure GUI `widgets`
rts/lib                           Third party libraries
rts/lib/7z                        7zip library
rts/lib/assimp                    Open Asset Import Library (short name: Assimp)
rts/lib/gml                       graphics MT assistance library
rts/lib/headlessStubs             stub libraries for OpenGL, GLEW & SDL
rts/lib/lobby                     library that allows communication with a lobby server (used by LuaUI's LuaLobby API)
rts/lib/lua                       lua interpreter library
rts/lib/md5                       MD5 & base64 en-/de-cription library (used by lobby library)
rts/lib/minizip                   zip library
rts/lib/oscpack                   Open Sound Control library (used for statistics broadcasting)
rts/lib/streflop/libm             Math libary (long double, double and float implementations)
rts/lib/streflop/softfloat        Emulated FP library
rts/lib/streflop                  STandalone REproducable FLOating Point lib
rts/Lua                           Spring Lua libraries
rts/Map                           Map loading & rendering
rts/Map/SM3                       SM3 map support
rts/Map/SMF                       SMF map support
rts/Menu                          Menu shown when the engine executable is launched without parameters
rts/Net                           netcode, game server & net client
rts/aGui                          engine internal, OpenGL based simple GUI framework
rts/Rendering
rts/Rendering/Env                 Sky(box), trees, water, grass
rts/Rendering/GL                  OpenGL extension loading, vertex arrays and utility code
rts/Rendering/Textures            Texture management / texture filtering code
rts/Rendering/UnitModels          S3O and 3DO rendering
rts/Sim                           Simulation code
rts/Sim/Misc                      Radar, LOS, damage array, quadfield, features, categories
rts/Sim/MoveTypes                 Unit move types and move math
rts/Sim/Objects                   SolidObject, WorldObject
rts/Sim/Path                      Pathfinding
rts/Sim/Projectiles               ProjectileHandler & all projectiles
rts/Sim/Units                     Unit handling code
rts/Sim/Units/COB                 COB scripts VM
rts/Sim/Units/CommandAI           Unit AI
rts/Sim/Units/UnitTypes           CUnit implementations
rts/Sim/Weapons                   Weapon code
rts/System
rts/System/creg                   Class register system (reflection)
rts/System/FileSystem             Virtual File System
rts/System/Input                  Mouse & joystick handling
rts/System/LoadSave               Demo & SaveGame handling
rts/System/Net                    Network/Socket handling
rts/System/Platform               Code handling differences between OSes/processors
rts/System/Platform/Linux         Linux/Unix specific code
rts/System/Platform/Mac           Mac specific code
rts/System/Platform/Win           Windows specific code
rts/System/Sound                  Sound output implementation (<Null> & OpenAL)
rts/System/Sync                   Sync debuggers

AI                                AI sourcecode...
AI/Interfaces                     ...for interfaceing with Skirmish and Group AIs (Interfaces/impls)
AI/Wrappers                       meta AI interfaces (consist only of code that will be integrated into AI binaries)
AI/Wrappers/LegacyCpp             ...for letting Legacy C++ AIs interface with the C AI Interface
AI/Wrappers/LegacyCpp/Event       ...and Event classes needed for that
AI/Skirmish                       ...for SkirmishAIs (Skirmish/impls)

include                           direct, unaltered copies of headers required by headless, non-MinGW builds
buildbot                          used by the official build-bot (uninteresting for most users)
installer                         used to create the official windows engine installer (uninteresting for most users)
cont                              content that is used by the engine as is
cont/base                         base-files content
cont/freedesktop                  desktop shortcuts and similar stuff for Linux
cont/LuaUI                        engine supplied default Lua Gadgets & Widgets
tools                             source code for spring related tools


# When installed
dist/AI                           Files related to AI
dist/AI/Interfaces                Output directory for AI Interface plugins
dist/AI/Skirmish                  Output directory for Skirmish AI plugins
dist/base                         Output directory for springcontent.sdz & bitmaps.sdz
dist/maps                         Map archives (sd7,sdz,sdd)
dist/games                        Game archives (sd7,sdz,sdd)
dist                              Output directory for binaries / data directory
