1
0
mirror of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git synced 2025-07-17 10:52:46 +00:00

Add more functionality to the bink stubs to make them behave more like the previous implementation did when built without BINK_SDK_AVAILABLE.

In particular, the intro movie now exits immediately again rather than staying indefinitely.

The important difference is to send the completion callback in plBinkPlayer::NextFrame(), i.e. act as if we had reached the end of the movie.

Storing the filename is to keep plClient::IHandleMovieMsg() from deleting and recreating the plBinkPlayer on every message.

The changed return values are just to better match the previous behavior and probably don’t matter.
This commit is contained in:
Christian Walther
2012-12-18 15:49:41 +01:00
parent 5f53ada44d
commit e9835eda57
2 changed files with 27 additions and 8 deletions

View File

@ -57,6 +57,8 @@ class plBinkPlayer
{
public:
plBinkPlayer() : fFileName(nil) { }
static bool Init( hsWindowHndl hWnd) { return true; }
static bool DeInit() { return true; }
@ -67,15 +69,28 @@ class plBinkPlayer
void SetDefaults() { }
bool Start(plPipeline* pipe, hsWindowHndl hWnd) { return true; }
bool Start(plPipeline* pipe, hsWindowHndl hWnd) { return false; }
bool NextFrame() { return false; }
bool NextFrame() {
// we have reached the end
return Stop();
}
bool Pause(bool on) { return true; }
bool Pause(bool on) { return false; }
bool Stop() { return true; }
bool Stop() {
for (int i = 0; i < fCallbacks.GetCount(); i++)
fCallbacks[i]->Send();
fCallbacks.Reset();
delete [] fFileName;
fFileName = nil;
return false;
}
void SetFileName(const char* filename) { }
void SetFileName(const char* filename) {
delete [] fFileName;
fFileName = hsStrcpy(filename);
}
void SetColor(const hsColorRGBA& c) { }
void SetPosition(float x, float y) { }
void SetScale(float x, float y) { }
@ -86,14 +101,14 @@ class plBinkPlayer
void SetPosition(const hsPoint2& p) { }
void SetScale(const hsPoint2& s) { }
const char* GetFileName() const { return NULL; }
const char* GetFileName() const { return fFileName; }
const hsColorRGBA GetColor() const { return hsColorRGBA(); }
const hsPoint2 GetPosition() const { return hsPoint2(); }
const hsPoint2 GetScale() const { return hsPoint2(); }
float GetBackVolume() const { return 0.0f; }
float GetForeVolume() const { return 0.0f; }
void AddCallback(plMessage* msg) { }
void AddCallback(plMessage* msg) { hsRefCnt_SafeRef(msg); fCallbacks.Append(msg); }
uint32_t GetNumCallbacks() const { return 0; }
plMessage* GetCallback(int i) const { return nil; }
@ -107,6 +122,10 @@ class plBinkPlayer
hsColorRGBA GetFadeFromColor() const { return hsColorRGBA(); }
float GetFadeToTime() const { return 0.0f; }
hsColorRGBA GetFadeToColor() const { return hsColorRGBA(); }
private:
char* fFileName;
hsTArray<plMessage*> fCallbacks;
};
#endif // plBinkPlayer_inc