Files
2026-06-01 12:46:52 +02:00

80 lines
1.9 KiB
C++

#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;
};
}