#include "audio/sound_manager.hpp"
#include "audio/sound_source.hpp"
+/**
+ * Base class for moving sprites that can hurt the Player.
+ */
class BadGuy : public MovingSprite, protected UsesPhysic, public Serializable
{
public:
class Timer;
/**
- * Baseclass for a Badguy that just walks around.
+ * Base class for Badguys that walk on the floor.
*/
class WalkingBadguy : public BadGuy
{
class ObjectRemoveListener;
/**
- * This is a base class for all game objects. Each sector of a level will hold a
- * list of active GameObject while the game is played.
+ * Base class for all the things that make up Levels' Sectors.
+ *
+ * Each sector of a level will hold a list of active GameObject while the
+ * game is played.
*
* This class is responsible for:
* - Updating and Drawing the object. This should happen in the update() and
class Menu;
/**
- * The GameSession class controlls the controll flow of the Game (the part
- * where you actually play a level)
+ * Screen that runs a Level, where Players run and jump through Sectors.
*/
class GameSession : public Screen
{
class Lisp;
}
+/**
+ * Represents a collection of Sectors running in a single GameSession.
+ *
+ * Each Sector in turn contains GameObjects, e.g. Badguys and Players.
+ */
class Level
{
public:
class ScreenFade;
class DrawingContext;
+/**
+ * Manages, updates and draws all Screens, Controllers, Menus and the Console.
+ */
class MainLoop
{
public:
class DrawingContext;
+/**
+ * Abstract base class for code the MainLoop runs exclusively and full-screen.
+ *
+ * Examples of Screens are: The TitleScreen, a WorldMap, a level's
+ * GameSession, a TextScroller, ...
+ */
class Screen
{
public:
#include "screen.hpp"
/**
- * A ScreenFade screen is displayed simultaneously with another screen. This
- * is intended to be used for transitional effects like fade-out or shrink-fade
+ * Screen to be displayed simultaneously with another Screen.
+ *
+ * This is used for Screen transition effects like a fade-out or a shrink-fade
*/
class ScreenFade : public Screen
{
};
/**
- * This class holds a sector (a part of a level) and all the game objects in
- * the sector
+ * Represents one of (potentially) multiple, separate parts of a Level.
+ *
+ * Sectors contain GameObjects, e.g. Badguys and Players.
*/
class Sector : public Scripting::SSector
{
Surface* arrow_scrolldown;
};
+/**
+ * Screen that displays intro text, extro text, etc.
+ */
class TextScroller : public Screen
{
public:
class World;
class CodeController;
+/**
+ * Screen that displays the SuperTux logo, lets players start a new game, etc.
+ */
class TitleScreen : public Screen
{
public:
Direction reverse_dir(Direction d);
/**
- * Screen that displays a worldmap
+ * Screen that runs a WorldMap, which lets the player choose a Level.
*/
class WorldMap : public Screen
{