#pragma once #define CREDITS_TICK_TIMER_ID \ (6) // Arbitrary timer ID used to tick credits for scrolling. #define MAX_CREDIT_STRINGS 360 // 213 #include "../UI/UIStructs.h" class CScene_Credits : public CXuiSceneImpl { protected: // Control and Element wrapper objects. // Message map. Here we tie messages to message handlers. XUI_BEGIN_MSG_MAP() XUI_ON_XM_INIT(OnInit) XUI_ON_XM_KEYDOWN(OnKeyDown) XUI_ON_XM_NOTIFY_PRESS_EX(OnNotifyPressEx) XUI_ON_XM_CONTROL_NAVIGATE(OnControlNavigate) XUI_ON_XM_TIMER(OnTimer) XUI_ON_XM_DESTROY(OnDestroy) XUI_END_MSG_MAP() // Control mapping to objects BEGIN_CONTROL_MAP() END_CONTROL_MAP() HRESULT OnInit(XUIMessageInit* pInitData, BOOL& bHandled); HRESULT OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled); HRESULT OnNotifyPressEx(HXUIOBJ hObjPressed, XUINotifyPress* pNotifyPressData, BOOL& rfHandled); HRESULT OnControlNavigate(XUIMessageControlNavigate* pControlNavigateData, BOOL& bHandled); HRESULT OnTimer(XUIMessageTimer* pTimer, BOOL& bHandled); HRESULT OnDestroy(); private: struct STextType { // Array of pointers to text elements. CXuiControl** m_appTextElements; int m_iNextFreeElement; int m_iNumUsedElements; int m_iMaxElements; }; STextType m_aTextTypes[eNumTextTypes]; int m_iCurrDefIndex; // Index of last created text def. float m_fMoveSinceLastDef; // How far have credits scrolled since we last // created a new text item. float m_fMoveToNextDef; // How far we need to move before starting next // text item. int m_iNumTextDefs; // Total number of text defs in the credits. float CREDITS_SCREEN_MIN_Y; // ( 200.0f ) // Y pos at //which credits are removed from top of screen. float CREDITS_SCREEN_MAX_Y; // ( 630.0f ) // Y pos at //which credits appear at bottom of screen. float CREDITS_FADE_HEIGHT; // ( 100.0f ) // //Height over which credits fade in or fade out. float gs_aLineSpace[eNumTextTypes]; public: static SCreditTextItemDef gs_aCreditDefs[MAX_CREDIT_STRINGS]; // Define the class. The class name must match the ClassOverride property // set for the scene in the UI Authoring tool. XUI_IMPLEMENT_CLASS(CScene_Credits, L"CScene_Credits", XUI_CLASS_SCENE) };