#pragma once #include "KPrimitiveSprite.h" #include "SGameScene.h" namespace rp { class SGameCreditsScene : public SGameScene { public: SGameCreditsScene( SGameSceneManager& sceneMgr , SGameScene* parent , const char* sceneName , DWORD screeningTime , DWORD fadeInTime , DWORD fadeOutTime , DWORD beginScrollTime , DWORD endScrollTime , float startx , DWORD width , DWORD height , KViewportObject* viewport = 0); ~SGameCreditsScene(); virtual void onEnter(); virtual void onActivate(); virtual void onDeactivate(); virtual void onLeave(); virtual void onTick(); virtual void onRender( KViewportObject* viewport ); virtual void activate( bool activity = true ); void addFilm( const char* fileName ); int getFilmCount() { return mFilms.size(); } //void escapeScene(); private: class CFilm { public: CFilm(); bool createFilm( SGameSceneManager& sceneMgr, const char* fileName, int screenWidth, int screenHeight, float position ); float getPosition( float position ) { return mPosition; } float getFilmWidth(); float getFilmHeight(); bool isVisible( float screenPosition, int screenHeight ); KSpritePrimitive& project( float screenx, float screenPoition, int screenWidth, int screenHeight ); private: KSpritePrimitive mPrimitive; KResSpriteSPtr mSprite; K3DTextureSPtr mTexture; float mPosition; #if defined( _DEBUG ) std::string mFilmName; #endif }; typedef std::vector< CFilm* > film_vector_t; film_vector_t mFilms; float mScreenX; int mScreenWidth; int mScreenHeight; DWORD mScreeningTime; DWORD mFadeInTime; DWORD mFadeOutTime; DWORD mBeginScrollTime; DWORD mEndScrollTime; DWORD mShowTime; float mProjectPosition; float mFilmLength; unsigned int mFilmIndex; DWORD mEscapeTime; KViewportObject* mViewport; }; }