More doxygen. Start of AutoScreenMessage( * );
The lack of semicolon messes up the doc generator.
This commit is contained in:
+36
-16
@@ -1,5 +1,3 @@
|
||||
/* Screen - Class that holds a screen-full of Actors. */
|
||||
|
||||
#ifndef SCREEN_H
|
||||
#define SCREEN_H
|
||||
|
||||
@@ -22,18 +20,20 @@ struct RegisterScreenClass { RegisterScreenClass( const RString &sClassName, Cre
|
||||
static Screen* Create##className( const RString &sName ) { LuaThreadVariable var( "LoadingScreen", sName ); Screen *pRet = new className; pRet->SetName( sName ); Screen::InitScreen( pRet ); return pRet; } \
|
||||
static RegisterScreenClass register_##className( #className, Create##className )
|
||||
|
||||
/** @brief The different types of screens available. */
|
||||
enum ScreenType
|
||||
{
|
||||
attract,
|
||||
game_menu,
|
||||
gameplay,
|
||||
system_menu,
|
||||
NUM_ScreenType,
|
||||
attract, /**< The attract/demo mode, inviting players to play. */
|
||||
game_menu, /**< The menu screens, where options can be set before playing. */
|
||||
gameplay, /**< The gameplay screen, where the actual game takes place. */
|
||||
system_menu, /**< The system/operator menu, where special options are set. */
|
||||
NUM_ScreenType, /**< The number of screen types. */
|
||||
ScreenType_Invalid
|
||||
};
|
||||
const RString& ScreenTypeToString( ScreenType st );
|
||||
LuaDeclareType( ScreenType );
|
||||
|
||||
/** @brief Class that holds a screen-full of Actors. */
|
||||
class Screen : public ActorFrame
|
||||
{
|
||||
public:
|
||||
@@ -41,14 +41,17 @@ public:
|
||||
|
||||
virtual ~Screen();
|
||||
|
||||
/* This is called immediately after construction, to allow initializing after all
|
||||
* derived classes exist. (Don't call it directly; use InitScreen.) */
|
||||
/**
|
||||
* @brief This is called immediately after construction,
|
||||
* to allow initializing after all derived classes exist.
|
||||
*
|
||||
* Don't call it directly; use InitScreen instead. */
|
||||
virtual void Init();
|
||||
|
||||
// This is called immediately before the screen is used.
|
||||
/** @brief This is called immediately before the screen is used. */
|
||||
virtual void BeginScreen();
|
||||
|
||||
// This is called when the screen is popped.
|
||||
/** @brief This is called when the screen is popped. */
|
||||
virtual void EndScreen();
|
||||
|
||||
virtual void Update( float fDeltaTime );
|
||||
@@ -58,34 +61,49 @@ public:
|
||||
void SetLockInputSecs( float f ) { m_fLockInputSecs = f; }
|
||||
|
||||
void PostScreenMessage( const ScreenMessage SM, float fDelay );
|
||||
/** @brief Clear the entire message queue. */
|
||||
void ClearMessageQueue();
|
||||
void ClearMessageQueue( const ScreenMessage SM ); // clear of a specific SM
|
||||
/**
|
||||
* @brief Clear the message queue of a specific ScreenMessage.
|
||||
* @param SM the specific ScreenMessage to get out of the Queue. */
|
||||
void ClearMessageQueue( const ScreenMessage SM );
|
||||
|
||||
virtual ScreenType GetScreenType() const { return ALLOW_OPERATOR_MENU_BUTTON ? game_menu : system_menu; }
|
||||
bool AllowOperatorMenuButton() const { return ALLOW_OPERATOR_MENU_BUTTON; }
|
||||
/**
|
||||
* @brief Determine if we allow extra players to join in on this screen.
|
||||
* @return false, for players should never be able to join while in progress. */
|
||||
virtual bool AllowLateJoin() const { return false; }
|
||||
|
||||
// Lua
|
||||
virtual void PushSelf( lua_State *L );
|
||||
|
||||
protected:
|
||||
// structure for holding messages sent to a Screen
|
||||
/** @brief Holds the messages sent to a Screen. */
|
||||
struct QueuedScreenMessage {
|
||||
/** @brief The message being held. */
|
||||
ScreenMessage SM;
|
||||
/** @brief How long the message is up. */
|
||||
float fDelayRemaining;
|
||||
};
|
||||
/** @brief The list of messages that are sent to a Screen. */
|
||||
vector<QueuedScreenMessage> m_QueuedMessages;
|
||||
static bool SortMessagesByDelayRemaining(const QueuedScreenMessage &m1, const QueuedScreenMessage &m2);
|
||||
|
||||
InputQueueCodeSet m_Codes;
|
||||
|
||||
/** @brief Do we allow the operator menu button to be pressed here? */
|
||||
ThemeMetric<bool> ALLOW_OPERATOR_MENU_BUTTON;
|
||||
/** @brief Do we handle the back button being pressed here? */
|
||||
ThemeMetric<bool> HANDLE_BACK_BUTTON;
|
||||
ThemeMetric<float> REPEAT_RATE;
|
||||
ThemeMetric<float> REPEAT_DELAY;
|
||||
ThemeMetric<LightsMode> LIGHTS_MODE;
|
||||
|
||||
// If left blank, the NextScreen metric will be used.
|
||||
/**
|
||||
* @brief The next screen to go to once this screen is done.
|
||||
*
|
||||
* If this is blank, the NextScreen metric will be used. */
|
||||
RString m_sNextScreen;
|
||||
RString m_sPrevScreen;
|
||||
ScreenMessage m_smSendOnPop;
|
||||
@@ -112,8 +130,10 @@ public:
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* (c) 2001-2004 Chris Danford
|
||||
/**
|
||||
* @file
|
||||
* @author Chris Danford (c) 2001-2004
|
||||
* @section LICENSE
|
||||
* All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
|
||||
Reference in New Issue
Block a user