mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-20 12:19:10 +00:00
First effort to port HUru MKV/WEBM Movie Player to Minkata
Type restructuring for C++98 and build configuration updates. This version compiles successfully, but without webm libraries yet linked in.
This commit is contained in:
@ -115,6 +115,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "../plProgressMgr/plProgressMgr.h"
|
||||
#include "../plPipeline/plDTProgressMgr.h"
|
||||
#include "../plPipeline/plBinkPlayer.h"
|
||||
#include "../pfMoviePlayer/plMoviePlayer.h"
|
||||
#include "../plMessage/plMovieMsg.h"
|
||||
|
||||
#include "../plSDL/plSDL.h"
|
||||
@ -273,9 +274,6 @@ hsBool plClient::Shutdown()
|
||||
IKillMovies();
|
||||
|
||||
plgAudioSys::Activate(false);
|
||||
#ifdef USE_BINK_SDK
|
||||
plBinkPlayer::DeInit();
|
||||
#endif
|
||||
//
|
||||
// Get any proxies to commit suicide.
|
||||
plProxyDrawMsg* nuke = TRACKED_NEW plProxyDrawMsg(plProxyDrawMsg::kAllTypes
|
||||
@ -887,8 +885,7 @@ hsBool plClient::IHandleMovieMsg(plMovieMsg* mov)
|
||||
}
|
||||
if( i == fMovies.GetCount() )
|
||||
{
|
||||
|
||||
fMovies.Append(TRACKED_NEW plBinkPlayer);
|
||||
fMovies.Append(new plMoviePlayer);
|
||||
fMovies[i]->SetFileName(mov->GetFileName());
|
||||
}
|
||||
|
||||
@ -930,7 +927,7 @@ hsBool plClient::IHandleMovieMsg(plMovieMsg* mov)
|
||||
fMovies[i]->SetVolume(mov->GetVolume());
|
||||
|
||||
if( mov->GetCmd() & plMovieMsg::kStart )
|
||||
fMovies[i]->Start(fPipeline, fWindowHndl);
|
||||
fMovies[i]->Start();
|
||||
if( mov->GetCmd() & plMovieMsg::kPause )
|
||||
fMovies[i]->Pause(true);
|
||||
if( mov->GetCmd() & plMovieMsg::kResume )
|
||||
@ -1514,14 +1511,10 @@ hsBool plClient::StartInit()
|
||||
|
||||
plgAudioSys::Activate(true);
|
||||
|
||||
#ifdef USE_BINK_SDK
|
||||
plConst(hsScalar) delay(2.f);
|
||||
//commenting out publisher splash for MORE
|
||||
//IPlayIntroBink("avi/intro0.bik", delay, 0.f, 0.f, 1.f, 1.f, 0.75);
|
||||
//if( GetDone() ) return false;
|
||||
IPlayIntroBink("avi/intro1.bik", 0.f, 0.f, 0.f, 1.f, 1.f, 0.75);
|
||||
if( GetDone() ) return false;
|
||||
#endif // USE_BINK_SDK
|
||||
IPlayIntroMovie("avi/intro1.webm", 0.f, 0.f, 0.f, 1.f, 1.f, 0.75);
|
||||
IPlayIntroMovie("avi/URULiveIntro.webm", 0.f, 0.f, 0.f, 1.f, 1.f, 0.75);
|
||||
|
||||
plgDispatch::Dispatch()->RegisterForExactType(plMovieMsg::Index(), GetKey());
|
||||
|
||||
//
|
||||
@ -1984,56 +1977,55 @@ void plClient::IKillMovies()
|
||||
fMovies.Reset();
|
||||
}
|
||||
|
||||
#ifdef USE_BINK_SDK
|
||||
hsBool plClient::IPlayIntroBink(const char* movieName, hsScalar endDelay, hsScalar posX, hsScalar posY, hsScalar scaleX, hsScalar scaleY, hsScalar volume /* = 1.0 */)
|
||||
hsBool plClient::IPlayIntroMovie(const char* movieName, hsScalar endDelay, hsScalar posX, hsScalar posY, hsScalar scaleX, hsScalar scaleY, hsScalar volume /* = 1.0 */)
|
||||
{
|
||||
SetQuitIntro(false);
|
||||
plBinkPlayer player;
|
||||
player.SetPosition(posX, posY);
|
||||
player.SetScale(scaleX, scaleY);
|
||||
player.SetFileName(movieName);
|
||||
player.SetFadeToTime(endDelay);
|
||||
player.SetFadeToColor(hsColorRGBA().Set(0, 0, 0, 1.f));
|
||||
player.SetVolume(volume);
|
||||
bool firstTry = true; // flag to make sure that we don't quit before we even start
|
||||
SetQuitIntro(false);
|
||||
plMoviePlayer player;
|
||||
player.SetPosition(posX, posY);
|
||||
player.SetScale(scaleX, scaleY);
|
||||
player.SetFileName(movieName);
|
||||
player.SetFadeToTime(endDelay);
|
||||
player.SetFadeToColor(hsColorRGBA().Set(0, 0, 0, 1.f));
|
||||
player.SetVolume(volume);
|
||||
bool firstTry = true; // flag to make sure that we don't quit before we even start
|
||||
|
||||
if( player.Start(fPipeline, fWindowHndl) )
|
||||
{
|
||||
while( true )
|
||||
{
|
||||
if( fInstance )
|
||||
fInstance->fMessagePumpProc();
|
||||
if (player.Start())
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
if (fInstance)
|
||||
fInstance->fMessagePumpProc();
|
||||
|
||||
if( GetDone() )
|
||||
return true;
|
||||
if (firstTry)
|
||||
{
|
||||
firstTry = false;
|
||||
SetQuitIntro(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
if( GetQuitIntro() )
|
||||
return true;
|
||||
}
|
||||
if (GetDone())
|
||||
return true;
|
||||
if (firstTry)
|
||||
{
|
||||
firstTry = false;
|
||||
SetQuitIntro(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GetQuitIntro())
|
||||
return true;
|
||||
}
|
||||
|
||||
hsBool done = false;
|
||||
if( !fPipeline->BeginRender() )
|
||||
{
|
||||
fPipeline->ClearRenderTarget();
|
||||
done = !player.NextFrame();
|
||||
bool done = false;
|
||||
if (!fPipeline->BeginRender())
|
||||
{
|
||||
fPipeline->ClearRenderTarget();
|
||||
done = !player.NextFrame();
|
||||
|
||||
fPipeline->EndRender();
|
||||
}
|
||||
fPipeline->RenderScreenElements();
|
||||
fPipeline->EndRender();
|
||||
}
|
||||
|
||||
if( done )
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
if (done)
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif // USE_BINK_SDK
|
||||
|
||||
hsBool plClient::IFlushRenderRequests()
|
||||
{
|
||||
|
@ -79,6 +79,7 @@ class plClientMsg;
|
||||
class plLocation;
|
||||
class plMovieMsg;
|
||||
class plBinkPlayer;
|
||||
class plMoviePlayer;
|
||||
class plPreloaderMsg;
|
||||
class plNetCommAuthMsg;
|
||||
class plAgeLoaded2Msg;
|
||||
@ -150,7 +151,7 @@ protected:
|
||||
int fQuality;
|
||||
|
||||
hsBool fQuitIntro;
|
||||
hsTArray<plBinkPlayer*> fMovies;
|
||||
hsTArray<plMoviePlayer*> fMovies;
|
||||
|
||||
hsBool fPatchGlobalAges;
|
||||
|
||||
@ -191,9 +192,7 @@ protected:
|
||||
void IProcessRenderRequests(hsTArray<plRenderRequest*>& reqs);
|
||||
void IAddRenderRequest(plRenderRequest* req);
|
||||
|
||||
#ifdef USE_BINK_SDK
|
||||
hsBool IPlayIntroBink(const char* movieName, hsScalar endDelay, hsScalar posX, hsScalar posY, hsScalar scaleX, hsScalar scaleY, hsScalar volume = 1.0);
|
||||
#endif // USE_BINK_SDK
|
||||
hsBool IPlayIntroMovie(const char* movieName, hsScalar endDelay, hsScalar posX, hsScalar posY, hsScalar scaleX, hsScalar scaleY, hsScalar volume = 1.0);
|
||||
hsBool IHandleMovieMsg(plMovieMsg* mov);
|
||||
void IKillMovies();
|
||||
void IServiceMovies();
|
||||
|
Reference in New Issue
Block a user