Implemented support for maintaining aspect ratio for movies (#73)

* video_patches: aspect ratio support for CPlayMovieWrapper

* config: remove movie scale mode option

* video_patches: improve movie aspect ratio correction, support intro logos

Co-Authored-By: Darío <538504+DarioSamo@users.noreply.github.com>
Co-Authored-By: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>

* api: upload Inspire research

* api: move Vertex struct

---------

Co-authored-by: Darío <538504+DarioSamo@users.noreply.github.com>
Co-authored-by: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>
This commit is contained in:
authored and GitHub committed 2025-01-12 18:53:31 +03:00
1 parent 0737ff771d
commit 9a29b187cd
13 files changed
+139 -62

No files matched your search

+4
View File
@@ -60,6 +60,10 @@
#include "SWA/HUD/Pause/HudPause.h"
#include "SWA/HUD/SaveIcon/SaveIcon.h"
#include "SWA/HUD/Sonic/HudSonicStage.h"
#include "SWA/Inspire/InspireMovieOverlay.h"
#include "SWA/Inspire/InspireMovieOverlayInfo.h"
#include "SWA/Inspire/InspireTextureOverlay.h"
#include "SWA/Inspire/InspireTextureOverlayInfo.h"
#include "SWA/Movie/MovieDisplayer.h"
#include "SWA/Movie/MovieManager.h"
#include "SWA/Player/Character/EvilSonic/EvilSonic.h"
@@ -0,0 +1,17 @@
#pragma once
#include <SWA.inl>
#include <SWA/Inspire/InspireMovieOverlayInfo.h>
namespace SWA::Inspire
{
class CScene;
class CMovieOverlay
{
public:
boost::shared_ptr<CMovieOverlayInfo> m_spInfo;
xpointer<CScene> m_pScene;
xpointer<Hedgehog::Mirage::CTextureData> m_pTextureData;
};
}
@@ -0,0 +1,17 @@
#pragma once
#include <SWA.inl>
namespace SWA::Inspire
{
class CMovieOverlayInfo
{
public:
Hedgehog::Base::CSharedString m_MovieName;
be<float> m_StartTime;
be<float> m_FadeInStartTime;
be<float> m_FadeInEndTime;
be<float> m_FadeOutStartTime;
be<float> m_FadeOutEndTime;
};
}
@@ -0,0 +1,18 @@
#pragma once
#include <SWA.inl>
#include <SWA/Inspire/InspireTextureOverlayInfo.h>
namespace SWA::Inspire
{
class CScene;
class CTextureOverlay
{
public:
xpointer<void> m_pVftable;
boost::shared_ptr<CInspireTextureOverlayInfo> m_spInfo;
xpointer<CScene> m_pScene;
boost::shared_ptr<Hedgehog::Mirage::CTextureData> m_spTextureData;
};
}
@@ -0,0 +1,15 @@
#pragma once
#include <SWA.inl>
namespace SWA::Inspire
{
class CInspireTextureOverlayInfo
{
public:
Hedgehog::Base::CSharedString m_CameraName;
be<uint32_t> m_Unk1;
be<uint32_t> m_Unk2;
be<uint32_t> m_Unk3;
};
}
@@ -11,23 +11,24 @@ namespace SWA::Sequence::Utility
class CRender : public Hedgehog::Mirage::CRenderable
{
public:
struct SVertexData
{
be<float> X;
be<float> Y;
be<float> Z;
be<float> U;
be<float> V;
};
be<uint32_t> m_ScreenWidth;
be<uint32_t> m_ScreenHeight;
be<float> m_MovieWidth;
be<float> m_MovieHeight;
SWA_INSERT_PADDING(0x74);
be<float> m_TopLeftX;
be<float> m_TopLeftY;
SWA_INSERT_PADDING(0x0C);
be<float> m_TopRightX;
be<float> m_TopRightY;
SWA_INSERT_PADDING(0x0C);
be<float> m_BottomRightX;
be<float> m_BottomRightY;
SWA_INSERT_PADDING(0x0C);
be<float> m_BottomLeftX;
be<float> m_BottomLeftY;
SWA_INSERT_PADDING(0xD4);
SVertexData m_TopLeft;
SVertexData m_TopRight;
SVertexData m_BottomRight;
SVertexData m_BottomLeft;
bool m_MaintainAspectRatio;
SWA_INSERT_PADDING(0x18);
be<float> m_TimeElapsed;