mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-22 16:04:17 +00:00
Clear unknowns in MxVideoPresenter
(#1656)
This commit is contained in:
@@ -84,7 +84,7 @@ MxBool MxControlPresenter::CheckButtonDown(MxS32 p_x, MxS32 p_y, MxPresenter* p_
|
|||||||
assert(map && map->IsA("MxStillPresenter"));
|
assert(map && map->IsA("MxStillPresenter"));
|
||||||
|
|
||||||
if (presenter == map || map->GetDisplayZ() < presenter->GetDisplayZ()) {
|
if (presenter == map || map->GetDisplayZ() < presenter->GetDisplayZ()) {
|
||||||
if (map->VTable0x7c()) {
|
if (map->HasFrameBitmapOrAlpha()) {
|
||||||
MxRect32 rect(0, 0, map->GetWidth() - 1, map->GetHeight() - 1);
|
MxRect32 rect(0, 0, map->GetWidth() - 1, map->GetHeight() - 1);
|
||||||
rect += map->GetLocation();
|
rect += map->GetLocation();
|
||||||
|
|
||||||
|
@@ -619,12 +619,12 @@ MxBool RegistrationBook::CreateSurface()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (presenter) {
|
if (presenter) {
|
||||||
m_checkboxSurface = presenter->VTable0x78();
|
m_checkboxSurface = presenter->GetSurface();
|
||||||
}
|
}
|
||||||
|
|
||||||
presenter = (MxStillPresenter*) Find("MxStillPresenter", "CheckHiLite_Bitmap");
|
presenter = (MxStillPresenter*) Find("MxStillPresenter", "CheckHiLite_Bitmap");
|
||||||
if (presenter) {
|
if (presenter) {
|
||||||
m_checkboxHilite = presenter->VTable0x78();
|
m_checkboxHilite = presenter->GetSurface();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_checkboxSurface && m_checkboxHilite) {
|
if (m_checkboxSurface && m_checkboxHilite) {
|
||||||
|
@@ -42,10 +42,10 @@ public:
|
|||||||
void Destroy() override { Destroy(FALSE); } // vtable+0x38
|
void Destroy() override { Destroy(FALSE); } // vtable+0x38
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1000c7b0
|
// FUNCTION: LEGO1 0x1000c7b0
|
||||||
virtual LPDIRECTDRAWSURFACE VTable0x78() { return m_unk0x58; } // vtable+0x78
|
virtual LPDIRECTDRAWSURFACE GetSurface() { return m_surface; } // vtable+0x78
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1000c7c0
|
// FUNCTION: LEGO1 0x1000c7c0
|
||||||
virtual MxBool VTable0x7c() { return m_frameBitmap != NULL || m_alpha != NULL; } // vtable+0x7c
|
virtual MxBool HasFrameBitmapOrAlpha() { return m_frameBitmap != NULL || m_alpha != NULL; } // vtable+0x7c
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1000c7e0
|
// FUNCTION: LEGO1 0x1000c7e0
|
||||||
virtual MxS32 GetWidth() { return m_alpha ? m_alpha->GetWidth() : m_frameBitmap->GetBmiWidth(); } // vtable+0x80
|
virtual MxS32 GetWidth() { return m_alpha ? m_alpha->GetWidth() : m_frameBitmap->GetBmiWidth(); } // vtable+0x80
|
||||||
@@ -115,17 +115,17 @@ public:
|
|||||||
// FUNCTION: BETA10 0x1002c2e0
|
// FUNCTION: BETA10 0x1002c2e0
|
||||||
MxU8* GetBitmapStart(MxS32 p_left, MxS32 p_top) { return m_frameBitmap->GetStart(p_left, p_top); }
|
MxU8* GetBitmapStart(MxS32 p_left, MxS32 p_top) { return m_frameBitmap->GetStart(p_left, p_top); }
|
||||||
|
|
||||||
void SetBit0(BOOL p_e) { m_flags.m_bit0 = p_e; }
|
void SetLoadedFirstFrame(BOOL p_loadedFirstFrame) { m_flags.m_bit0 = p_loadedFirstFrame; }
|
||||||
void SetBit1(BOOL p_e) { m_flags.m_bit1 = p_e; }
|
void SetUseSurface(BOOL p_useSurface) { m_flags.m_bit1 = p_useSurface; }
|
||||||
void SetBit2(BOOL p_e) { m_flags.m_bit2 = p_e; }
|
void SetUseVideoMemory(BOOL p_useVideoMemory) { m_flags.m_bit2 = p_useVideoMemory; }
|
||||||
void SetBit3(BOOL p_e) { m_flags.m_bit3 = p_e; }
|
void SetDoNotWriteToSurface(BOOL p_doNotWriteToSurface) { m_flags.m_bit3 = p_doNotWriteToSurface; }
|
||||||
void SetBit4(BOOL p_e) { m_flags.m_bit4 = p_e; }
|
void SetBitmapIsMap(BOOL p_bitmapIsMap) { m_flags.m_bit4 = p_bitmapIsMap; }
|
||||||
|
|
||||||
BYTE GetBit0() { return m_flags.m_bit0; }
|
BYTE LoadedFirstFrame() { return m_flags.m_bit0; }
|
||||||
BYTE GetBit1() { return m_flags.m_bit1; }
|
BYTE UseSurface() { return m_flags.m_bit1; }
|
||||||
BYTE GetBit2() { return m_flags.m_bit2; }
|
BYTE UseVideoMemory() { return m_flags.m_bit2; }
|
||||||
BYTE GetBit3() { return m_flags.m_bit3; }
|
BYTE DoNotWriteToSurface() { return m_flags.m_bit3; }
|
||||||
BYTE GetBit4() { return m_flags.m_bit4; }
|
BYTE BitmapIsMap() { return m_flags.m_bit4; }
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x1000c910
|
// SYNTHETIC: LEGO1 0x1000c910
|
||||||
// MxVideoPresenter::`scalar deleting destructor'
|
// MxVideoPresenter::`scalar deleting destructor'
|
||||||
@@ -138,10 +138,10 @@ protected:
|
|||||||
|
|
||||||
MxBitmap* m_frameBitmap; // 0x50
|
MxBitmap* m_frameBitmap; // 0x50
|
||||||
AlphaMask* m_alpha; // 0x54
|
AlphaMask* m_alpha; // 0x54
|
||||||
LPDIRECTDRAWSURFACE m_unk0x58; // 0x58
|
LPDIRECTDRAWSURFACE m_surface; // 0x58
|
||||||
MxS16 m_unk0x5c; // 0x5c
|
MxS16 m_frameLoadTickleCount; // 0x5c
|
||||||
FlagBitfield m_flags; // 0x5e
|
FlagBitfield m_flags; // 0x5e
|
||||||
MxLong m_unk0x60; // 0x60
|
MxLong m_frozenTime; // 0x60
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXVIDEOPRESENTER_H
|
#endif // MXVIDEOPRESENTER_H
|
||||||
|
@@ -13,8 +13,8 @@ DECOMP_SIZE_ASSERT(MxFlcPresenter, 0x68);
|
|||||||
MxFlcPresenter::MxFlcPresenter()
|
MxFlcPresenter::MxFlcPresenter()
|
||||||
{
|
{
|
||||||
m_flcHeader = NULL;
|
m_flcHeader = NULL;
|
||||||
SetBit1(FALSE);
|
SetUseSurface(FALSE);
|
||||||
SetBit2(FALSE);
|
SetUseVideoMemory(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100b3420
|
// FUNCTION: LEGO1 0x100b3420
|
||||||
|
@@ -22,8 +22,8 @@ MxLoopingFlcPresenter::~MxLoopingFlcPresenter()
|
|||||||
void MxLoopingFlcPresenter::Init()
|
void MxLoopingFlcPresenter::Init()
|
||||||
{
|
{
|
||||||
this->m_elapsedDuration = 0;
|
this->m_elapsedDuration = 0;
|
||||||
SetBit1(FALSE);
|
SetUseSurface(FALSE);
|
||||||
SetBit2(FALSE);
|
SetUseVideoMemory(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100b4430
|
// FUNCTION: LEGO1 0x100b4430
|
||||||
@@ -72,7 +72,7 @@ void MxLoopingFlcPresenter::VTable0x88()
|
|||||||
// FUNCTION: LEGO1 0x100b4520
|
// FUNCTION: LEGO1 0x100b4520
|
||||||
void MxLoopingFlcPresenter::RepeatingTickle()
|
void MxLoopingFlcPresenter::RepeatingTickle()
|
||||||
{
|
{
|
||||||
for (MxS16 i = 0; i < m_unk0x5c; i++) {
|
for (MxS16 i = 0; i < m_frameLoadTickleCount; i++) {
|
||||||
if (!m_loopingChunkCursor->HasMatch()) {
|
if (!m_loopingChunkCursor->HasMatch()) {
|
||||||
MxStreamChunk* chunk;
|
MxStreamChunk* chunk;
|
||||||
MxStreamChunkListCursor cursor(m_loopingChunks);
|
MxStreamChunkListCursor cursor(m_loopingChunks);
|
||||||
|
@@ -22,8 +22,8 @@ MxLoopingSmkPresenter::~MxLoopingSmkPresenter()
|
|||||||
void MxLoopingSmkPresenter::Init()
|
void MxLoopingSmkPresenter::Init()
|
||||||
{
|
{
|
||||||
m_elapsedDuration = 0;
|
m_elapsedDuration = 0;
|
||||||
SetBit1(FALSE);
|
SetUseSurface(FALSE);
|
||||||
SetBit2(FALSE);
|
SetUseVideoMemory(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100b49d0
|
// FUNCTION: LEGO1 0x100b49d0
|
||||||
@@ -82,7 +82,7 @@ void MxLoopingSmkPresenter::VTable0x8c()
|
|||||||
// FUNCTION: LEGO1 0x100b4b00
|
// FUNCTION: LEGO1 0x100b4b00
|
||||||
void MxLoopingSmkPresenter::RepeatingTickle()
|
void MxLoopingSmkPresenter::RepeatingTickle()
|
||||||
{
|
{
|
||||||
for (MxS16 i = 0; i < m_unk0x5c; i++) {
|
for (MxS16 i = 0; i < m_frameLoadTickleCount; i++) {
|
||||||
if (!m_loopingChunkCursor->HasMatch()) {
|
if (!m_loopingChunkCursor->HasMatch()) {
|
||||||
MxStreamChunk* chunk;
|
MxStreamChunk* chunk;
|
||||||
MxStreamChunkListCursor cursor(m_loopingChunks);
|
MxStreamChunkListCursor cursor(m_loopingChunks);
|
||||||
|
@@ -25,8 +25,8 @@ void MxSmkPresenter::Init()
|
|||||||
{
|
{
|
||||||
m_currentFrame = 0;
|
m_currentFrame = 0;
|
||||||
memset(&m_mxSmk, 0, sizeof(m_mxSmk));
|
memset(&m_mxSmk, 0, sizeof(m_mxSmk));
|
||||||
SetBit1(FALSE);
|
SetUseSurface(FALSE);
|
||||||
SetBit2(FALSE);
|
SetUseVideoMemory(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100b3900
|
// FUNCTION: LEGO1 0x100b3900
|
||||||
|
@@ -79,12 +79,12 @@ void MxStillPresenter::LoadFrame(MxStreamChunk* p_chunk)
|
|||||||
MxRect32 rect(x, y, width + x, height + y);
|
MxRect32 rect(x, y, width + x, height + y);
|
||||||
MVideoManager()->InvalidateRect(rect);
|
MVideoManager()->InvalidateRect(rect);
|
||||||
|
|
||||||
if (GetBit1()) {
|
if (UseSurface()) {
|
||||||
undefined4 und = 0;
|
undefined4 useVideoMemory = 0;
|
||||||
m_unk0x58 = MxOmni::GetInstance()->GetVideoManager()->GetDisplaySurface()->VTable0x44(
|
m_surface = MxOmni::GetInstance()->GetVideoManager()->GetDisplaySurface()->VTable0x44(
|
||||||
m_frameBitmap,
|
m_frameBitmap,
|
||||||
&und,
|
&useVideoMemory,
|
||||||
GetBit3(),
|
DoNotWriteToSurface(),
|
||||||
m_action->GetFlags() & MxDSAction::c_bit4
|
m_action->GetFlags() & MxDSAction::c_bit4
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -94,11 +94,11 @@ void MxStillPresenter::LoadFrame(MxStreamChunk* p_chunk)
|
|||||||
delete m_frameBitmap;
|
delete m_frameBitmap;
|
||||||
m_frameBitmap = NULL;
|
m_frameBitmap = NULL;
|
||||||
|
|
||||||
if (m_unk0x58 && und) {
|
if (m_surface && useVideoMemory) {
|
||||||
SetBit2(TRUE);
|
SetUseVideoMemory(TRUE);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
SetBit2(FALSE);
|
SetUseVideoMemory(FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -196,7 +196,7 @@ void MxStillPresenter::ParseExtra()
|
|||||||
MxPresenter::ParseExtra();
|
MxPresenter::ParseExtra();
|
||||||
|
|
||||||
if (m_action->GetFlags() & MxDSAction::c_bit5) {
|
if (m_action->GetFlags() & MxDSAction::c_bit5) {
|
||||||
SetBit3(TRUE);
|
SetDoNotWriteToSurface(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
MxU16 extraLength;
|
MxU16 extraLength;
|
||||||
@@ -216,9 +216,9 @@ void MxStillPresenter::ParseExtra()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (KeyValueStringParse(output, g_strBMP_ISMAP, extraCopy)) {
|
if (KeyValueStringParse(output, g_strBMP_ISMAP, extraCopy)) {
|
||||||
SetBit4(TRUE);
|
SetBitmapIsMap(TRUE);
|
||||||
SetBit1(FALSE);
|
SetUseSurface(FALSE);
|
||||||
SetBit2(FALSE);
|
SetUseVideoMemory(FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -234,11 +234,11 @@ MxStillPresenter* MxStillPresenter::Clone()
|
|||||||
MxDSAction* action = GetAction()->Clone();
|
MxDSAction* action = GetAction()->Clone();
|
||||||
|
|
||||||
if (action && presenter->StartAction(NULL, action) == SUCCESS) {
|
if (action && presenter->StartAction(NULL, action) == SUCCESS) {
|
||||||
presenter->SetBit0(GetBit0());
|
presenter->SetLoadedFirstFrame(LoadedFirstFrame());
|
||||||
presenter->SetBit1(GetBit1());
|
presenter->SetUseSurface(UseSurface());
|
||||||
presenter->SetBit2(GetBit2());
|
presenter->SetUseVideoMemory(UseVideoMemory());
|
||||||
presenter->SetBit3(GetBit3());
|
presenter->SetDoNotWriteToSurface(DoNotWriteToSurface());
|
||||||
presenter->SetBit4(GetBit4());
|
presenter->SetBitmapIsMap(BitmapIsMap());
|
||||||
|
|
||||||
if (m_frameBitmap) {
|
if (m_frameBitmap) {
|
||||||
presenter->m_frameBitmap = new MxBitmap;
|
presenter->m_frameBitmap = new MxBitmap;
|
||||||
@@ -248,8 +248,8 @@ MxStillPresenter* MxStillPresenter::Clone()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_unk0x58) {
|
if (m_surface) {
|
||||||
presenter->m_unk0x58 = MxDisplaySurface::CopySurface(m_unk0x58);
|
presenter->m_surface = MxDisplaySurface::CopySurface(m_surface);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_alpha) {
|
if (m_alpha) {
|
||||||
|
@@ -93,19 +93,19 @@ void MxVideoPresenter::Init()
|
|||||||
{
|
{
|
||||||
m_frameBitmap = NULL;
|
m_frameBitmap = NULL;
|
||||||
m_alpha = NULL;
|
m_alpha = NULL;
|
||||||
m_unk0x5c = 1;
|
m_frameLoadTickleCount = 1;
|
||||||
m_unk0x58 = NULL;
|
m_surface = NULL;
|
||||||
m_unk0x60 = -1;
|
m_frozenTime = -1;
|
||||||
SetBit0(FALSE);
|
SetLoadedFirstFrame(FALSE);
|
||||||
|
|
||||||
if (MVideoManager() != NULL) {
|
if (MVideoManager() != NULL) {
|
||||||
MVideoManager();
|
MVideoManager();
|
||||||
SetBit1(TRUE);
|
SetUseSurface(TRUE);
|
||||||
SetBit2(FALSE);
|
SetUseVideoMemory(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
SetBit3(FALSE);
|
SetDoNotWriteToSurface(FALSE);
|
||||||
SetBit4(FALSE);
|
SetBitmapIsMap(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100b27b0
|
// FUNCTION: LEGO1 0x100b27b0
|
||||||
@@ -115,11 +115,11 @@ void MxVideoPresenter::Destroy(MxBool p_fromDestructor)
|
|||||||
MVideoManager()->UnregisterPresenter(*this);
|
MVideoManager()->UnregisterPresenter(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_unk0x58) {
|
if (m_surface) {
|
||||||
m_unk0x58->Release();
|
m_surface->Release();
|
||||||
m_unk0x58 = NULL;
|
m_surface = NULL;
|
||||||
SetBit1(FALSE);
|
SetUseSurface(FALSE);
|
||||||
SetBit2(FALSE);
|
SetUseVideoMemory(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MVideoManager() && (m_alpha || m_frameBitmap)) {
|
if (MVideoManager() && (m_alpha || m_frameBitmap)) {
|
||||||
@@ -183,7 +183,7 @@ MxBool MxVideoPresenter::IsHit(MxS32 p_x, MxS32 p_y)
|
|||||||
|
|
||||||
MxU8* pixel = m_frameBitmap->GetStart(p_x - rect.GetLeft(), p_y - rect.GetTop());
|
MxU8* pixel = m_frameBitmap->GetStart(p_x - rect.GetLeft(), p_y - rect.GetTop());
|
||||||
|
|
||||||
if (GetBit4()) {
|
if (BitmapIsMap()) {
|
||||||
return (MxBool) *pixel;
|
return (MxBool) *pixel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -241,7 +241,7 @@ void MxVideoPresenter::PutFrame()
|
|||||||
LPDIRECTDRAWSURFACE ddSurface = displaySurface->GetDirectDrawSurface2();
|
LPDIRECTDRAWSURFACE ddSurface = displaySurface->GetDirectDrawSurface2();
|
||||||
|
|
||||||
if (m_action->GetFlags() & MxDSAction::c_bit5) {
|
if (m_action->GetFlags() & MxDSAction::c_bit5) {
|
||||||
if (m_unk0x58) {
|
if (m_surface) {
|
||||||
RECT src, dest;
|
RECT src, dest;
|
||||||
src.top = 0;
|
src.top = 0;
|
||||||
src.left = 0;
|
src.left = 0;
|
||||||
@@ -255,10 +255,10 @@ void MxVideoPresenter::PutFrame()
|
|||||||
|
|
||||||
switch (PrepareRects(src, dest)) {
|
switch (PrepareRects(src, dest)) {
|
||||||
case 0:
|
case 0:
|
||||||
ddSurface->Blt(&dest, m_unk0x58, &src, DDBLT_KEYSRC, NULL);
|
ddSurface->Blt(&dest, m_surface, &src, DDBLT_KEYSRC, NULL);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
ddSurface->BltFast(dest.left, dest.top, m_unk0x58, &src, DDBLTFAST_SRCCOLORKEY | DDBLTFAST_WAIT);
|
ddSurface->BltFast(dest.left, dest.top, m_surface, &src, DDBLTFAST_SRCCOLORKEY | DDBLTFAST_WAIT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -282,7 +282,7 @@ void MxVideoPresenter::PutFrame()
|
|||||||
if (regionRect->GetWidth() >= 1 && regionRect->GetHeight() >= 1) {
|
if (regionRect->GetWidth() >= 1 && regionRect->GetHeight() >= 1) {
|
||||||
RECT src, dest;
|
RECT src, dest;
|
||||||
|
|
||||||
if (m_unk0x58) {
|
if (m_surface) {
|
||||||
src.left = regionRect->GetLeft() - GetX();
|
src.left = regionRect->GetLeft() - GetX();
|
||||||
src.top = regionRect->GetTop() - GetY();
|
src.top = regionRect->GetTop() - GetY();
|
||||||
src.right = src.left + regionRect->GetWidth();
|
src.right = src.left + regionRect->GetWidth();
|
||||||
@@ -295,9 +295,9 @@ void MxVideoPresenter::PutFrame()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (m_action->GetFlags() & MxDSAction::c_bit4) {
|
if (m_action->GetFlags() & MxDSAction::c_bit4) {
|
||||||
if (m_unk0x58) {
|
if (m_surface) {
|
||||||
if (PrepareRects(src, dest) >= 0) {
|
if (PrepareRects(src, dest) >= 0) {
|
||||||
ddSurface->Blt(&dest, m_unk0x58, &src, DDBLT_KEYSRC, NULL);
|
ddSurface->Blt(&dest, m_surface, &src, DDBLT_KEYSRC, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -313,9 +313,9 @@ void MxVideoPresenter::PutFrame()
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (m_unk0x58) {
|
else if (m_surface) {
|
||||||
if (PrepareRects(src, dest) >= 0) {
|
if (PrepareRects(src, dest) >= 0) {
|
||||||
ddSurface->Blt(&dest, m_unk0x58, &src, 0, NULL);
|
ddSurface->Blt(&dest, m_surface, &src, 0, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -372,7 +372,7 @@ void MxVideoPresenter::StreamingTickle()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (MxS16 i = 0; i < m_unk0x5c; i++) {
|
for (MxS16 i = 0; i < m_frameLoadTickleCount; i++) {
|
||||||
if (!m_currentChunk) {
|
if (!m_currentChunk) {
|
||||||
MxMediaPresenter::StreamingTickle();
|
MxMediaPresenter::StreamingTickle();
|
||||||
|
|
||||||
@@ -388,15 +388,15 @@ void MxVideoPresenter::StreamingTickle()
|
|||||||
LoadFrame(m_currentChunk);
|
LoadFrame(m_currentChunk);
|
||||||
m_subscriber->FreeDataChunk(m_currentChunk);
|
m_subscriber->FreeDataChunk(m_currentChunk);
|
||||||
m_currentChunk = NULL;
|
m_currentChunk = NULL;
|
||||||
SetBit0(TRUE);
|
SetLoadedFirstFrame(TRUE);
|
||||||
|
|
||||||
if (m_currentTickleState != e_streaming) {
|
if (m_currentTickleState != e_streaming) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GetBit0()) {
|
if (LoadedFirstFrame()) {
|
||||||
m_unk0x5c = 5;
|
m_frameLoadTickleCount = 5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -416,7 +416,7 @@ void MxVideoPresenter::RepeatingTickle()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (MxS16 i = 0; i < m_unk0x5c; i++) {
|
for (MxS16 i = 0; i < m_frameLoadTickleCount; i++) {
|
||||||
if (!m_currentChunk) {
|
if (!m_currentChunk) {
|
||||||
MxMediaPresenter::RepeatingTickle();
|
MxMediaPresenter::RepeatingTickle();
|
||||||
|
|
||||||
@@ -431,15 +431,15 @@ void MxVideoPresenter::RepeatingTickle()
|
|||||||
|
|
||||||
LoadFrame(m_currentChunk);
|
LoadFrame(m_currentChunk);
|
||||||
m_currentChunk = NULL;
|
m_currentChunk = NULL;
|
||||||
SetBit0(TRUE);
|
SetLoadedFirstFrame(TRUE);
|
||||||
|
|
||||||
if (m_currentTickleState != e_repeating) {
|
if (m_currentTickleState != e_repeating) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GetBit0()) {
|
if (LoadedFirstFrame()) {
|
||||||
m_unk0x5c = 5;
|
m_frameLoadTickleCount = 5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -452,11 +452,11 @@ void MxVideoPresenter::FreezingTickle()
|
|||||||
|
|
||||||
if (sustainTime != -1) {
|
if (sustainTime != -1) {
|
||||||
if (sustainTime) {
|
if (sustainTime) {
|
||||||
if (m_unk0x60 == -1) {
|
if (m_frozenTime == -1) {
|
||||||
m_unk0x60 = m_action->GetElapsedTime();
|
m_frozenTime = m_action->GetElapsedTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_action->GetElapsedTime() >= m_unk0x60 + ((MxDSMediaAction*) m_action)->GetSustainTime()) {
|
if (m_action->GetElapsedTime() >= m_frozenTime + ((MxDSMediaAction*) m_action)->GetSustainTime()) {
|
||||||
ProgressTickleState(e_done);
|
ProgressTickleState(e_done);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user