#include "stdafx.h" #include "SGameSceneSeqPlayer.h" #include "SGameSceneManager.h" using namespace rp; SGameSceneSeqPlayer::SGameSceneSeqPlayer( SGameSceneManager& sceneMgr , SGameScene* parent , const char* sceneName ) : SGameSceneGroup ( sceneMgr, parent, sceneName ) , mCurrentSceneIndex( 0 ) { } SGameSceneSeqPlayer::~SGameSceneSeqPlayer() { } void SGameSceneSeqPlayer::onActivate() { mCurrentSceneIndex = 0; if( !isEmpty() ) getChildByIndex( mCurrentSceneIndex )->activate( true ); } void SGameSceneSeqPlayer::onDeactivate() { SGameScene* Scene = getChildByIndex( mCurrentSceneIndex ); if( Scene && Scene->isActivated() ) Scene->activate( false ); } void SGameSceneSeqPlayer::onTick() { if( isEmpty() ) return; SGameScene* Scene = getChildByIndex( mCurrentSceneIndex ); if( !Scene->isActivated() ) { mCurrentSceneIndex++; if( mCurrentSceneIndex >= getSize() ) { activate( false ); return; } Scene = getChildByIndex( mCurrentSceneIndex ); Scene->activate( true ); } SGameScene::onTick(); updateVisibility(); Scene->onTick(); } void SGameSceneSeqPlayer::onRender( KViewportObject* viewport ) { if( isEmpty() ) return; SGameScene* Scene = getChildByIndex( mCurrentSceneIndex ); if( Scene && Scene->isActivated() && Scene->isVisible() ) Scene->onRender( viewport ); }