mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 02:27:43 +00:00
New code style refactor
This commit is contained in:
@@ -2,185 +2,155 @@
|
||||
#include "GameGlobalObjects.hpp"
|
||||
#include "Editor/ProjectManager.hpp"
|
||||
|
||||
namespace urde
|
||||
{
|
||||
namespace urde {
|
||||
|
||||
CSlideShow::CSlideShow()
|
||||
: CIOWin("SlideShow"), x5c_slideA(*this), x90_slideB(*this)
|
||||
{
|
||||
x130_ = g_tweakSlideShow->GetX54();
|
||||
x134_24_ = true;
|
||||
x134_30_ = true;
|
||||
x135_24_ = true;
|
||||
CSlideShow::CSlideShow() : CIOWin("SlideShow"), x5c_slideA(*this), x90_slideB(*this) {
|
||||
x130_ = g_tweakSlideShow->GetX54();
|
||||
x134_24_ = true;
|
||||
x134_30_ = true;
|
||||
x135_24_ = true;
|
||||
|
||||
const SObjectTag* font = g_ResFactory->GetResourceIdByName(g_tweakSlideShow->GetFont());
|
||||
if (font)
|
||||
{
|
||||
CGuiTextProperties propsA(false, true, EJustification::Center, EVerticalJustification::Bottom);
|
||||
xc4_textA = std::make_unique<CGuiTextSupport>(font->id, propsA,
|
||||
g_tweakSlideShow->GetFontColor(),
|
||||
g_tweakSlideShow->GetOutlineColor(),
|
||||
zeus::CColor::skWhite, 640, 480, g_SimplePool,
|
||||
CGuiWidget::EGuiModelDrawFlags::Alpha);
|
||||
const SObjectTag* font = g_ResFactory->GetResourceIdByName(g_tweakSlideShow->GetFont());
|
||||
if (font) {
|
||||
CGuiTextProperties propsA(false, true, EJustification::Center, EVerticalJustification::Bottom);
|
||||
xc4_textA = std::make_unique<CGuiTextSupport>(font->id, propsA, g_tweakSlideShow->GetFontColor(),
|
||||
g_tweakSlideShow->GetOutlineColor(), zeus::CColor::skWhite, 640, 480,
|
||||
g_SimplePool, CGuiWidget::EGuiModelDrawFlags::Alpha);
|
||||
|
||||
CGuiTextProperties propsB(false, true, EJustification::Right, EVerticalJustification::Bottom);
|
||||
xc8_textB = std::make_unique<CGuiTextSupport>(font->id, propsB,
|
||||
g_tweakSlideShow->GetFontColor(),
|
||||
g_tweakSlideShow->GetOutlineColor(),
|
||||
zeus::CColor::skWhite, 640, 480, g_SimplePool,
|
||||
CGuiWidget::EGuiModelDrawFlags::Alpha);
|
||||
}
|
||||
CGuiTextProperties propsB(false, true, EJustification::Right, EVerticalJustification::Bottom);
|
||||
xc8_textB = std::make_unique<CGuiTextSupport>(font->id, propsB, g_tweakSlideShow->GetFontColor(),
|
||||
g_tweakSlideShow->GetOutlineColor(), zeus::CColor::skWhite, 640, 480,
|
||||
g_SimplePool, CGuiWidget::EGuiModelDrawFlags::Alpha);
|
||||
}
|
||||
|
||||
xf8_stickTextures.reserve(18);
|
||||
x108_buttonTextures.reserve(8);
|
||||
SObjectTag txtrTag(FOURCC('TXTR'), 0);
|
||||
for (int i=0 ; i<9 ; ++i)
|
||||
{
|
||||
txtrTag.id = g_tweakPlayerRes->x24_lStick[i];
|
||||
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
|
||||
}
|
||||
for (int i=0 ; i<9 ; ++i)
|
||||
{
|
||||
txtrTag.id = g_tweakPlayerRes->x4c_cStick[i];
|
||||
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
|
||||
}
|
||||
for (int i=0 ; i<2 ; ++i)
|
||||
{
|
||||
txtrTag.id = g_tweakPlayerRes->x74_lTrigger[i];
|
||||
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
|
||||
}
|
||||
for (int i=0 ; i<2 ; ++i)
|
||||
{
|
||||
txtrTag.id = g_tweakPlayerRes->x80_rTrigger[i];
|
||||
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
|
||||
}
|
||||
for (int i=0 ; i<2 ; ++i)
|
||||
{
|
||||
txtrTag.id = g_tweakPlayerRes->xa4_bButton[i];
|
||||
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
|
||||
}
|
||||
for (int i=0 ; i<2 ; ++i)
|
||||
{
|
||||
txtrTag.id = g_tweakPlayerRes->xbc_yButton[i];
|
||||
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
|
||||
}
|
||||
xf8_stickTextures.reserve(18);
|
||||
x108_buttonTextures.reserve(8);
|
||||
SObjectTag txtrTag(FOURCC('TXTR'), 0);
|
||||
for (int i = 0; i < 9; ++i) {
|
||||
txtrTag.id = g_tweakPlayerRes->x24_lStick[i];
|
||||
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
|
||||
}
|
||||
for (int i = 0; i < 9; ++i) {
|
||||
txtrTag.id = g_tweakPlayerRes->x4c_cStick[i];
|
||||
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
|
||||
}
|
||||
for (int i = 0; i < 2; ++i) {
|
||||
txtrTag.id = g_tweakPlayerRes->x74_lTrigger[i];
|
||||
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
|
||||
}
|
||||
for (int i = 0; i < 2; ++i) {
|
||||
txtrTag.id = g_tweakPlayerRes->x80_rTrigger[i];
|
||||
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
|
||||
}
|
||||
for (int i = 0; i < 2; ++i) {
|
||||
txtrTag.id = g_tweakPlayerRes->xa4_bButton[i];
|
||||
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
|
||||
}
|
||||
for (int i = 0; i < 2; ++i) {
|
||||
txtrTag.id = g_tweakPlayerRes->xbc_yButton[i];
|
||||
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
|
||||
}
|
||||
}
|
||||
|
||||
bool CSlideShow::LoadTXTRDep(std::string_view name)
|
||||
{
|
||||
const SObjectTag* dgrpTag = g_ResFactory->GetResourceIdByName(name);
|
||||
if (dgrpTag && dgrpTag->type == FOURCC('DGRP'))
|
||||
{
|
||||
x18_galleryTXTRDeps.push_back(g_SimplePool->GetObj(*dgrpTag));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CSlideShow::AreAllDepsLoaded(const std::vector<TLockedToken<CDependencyGroup>>& deps)
|
||||
{
|
||||
for (const TLockedToken<CDependencyGroup>& token : deps)
|
||||
{
|
||||
if (!token.IsLoaded())
|
||||
return false;
|
||||
}
|
||||
bool CSlideShow::LoadTXTRDep(std::string_view name) {
|
||||
const SObjectTag* dgrpTag = g_ResFactory->GetResourceIdByName(name);
|
||||
if (dgrpTag && dgrpTag->type == FOURCC('DGRP')) {
|
||||
x18_galleryTXTRDeps.push_back(g_SimplePool->GetObj(*dgrpTag));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
CIOWin::EMessageReturn CSlideShow::OnMessage(const CArchitectureMessage& msg, CArchitectureQueue& queue)
|
||||
{
|
||||
switch (msg.GetType())
|
||||
{
|
||||
case EArchMsgType::TimerTick:
|
||||
{
|
||||
if (x134_29_)
|
||||
return EMessageReturn::RemoveIOWinAndExit;
|
||||
bool CSlideShow::AreAllDepsLoaded(const std::vector<TLockedToken<CDependencyGroup>>& deps) {
|
||||
for (const TLockedToken<CDependencyGroup>& token : deps) {
|
||||
if (!token.IsLoaded())
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//float dt = MakeMsg::GetParmTimerTick(msg).x4_parm;
|
||||
CIOWin::EMessageReturn CSlideShow::OnMessage(const CArchitectureMessage& msg, CArchitectureQueue& queue) {
|
||||
switch (msg.GetType()) {
|
||||
case EArchMsgType::TimerTick: {
|
||||
if (x134_29_)
|
||||
return EMessageReturn::RemoveIOWinAndExit;
|
||||
|
||||
switch (x14_phase)
|
||||
{
|
||||
case Phase::Zero:
|
||||
{
|
||||
//if (!g_resLoader->AreAllPaksLoaded())
|
||||
//{
|
||||
// g_resLoader->AsyncIdlePakLoading();
|
||||
// return EMessageReturn::Exit;
|
||||
//}
|
||||
x14_phase = Phase::One;
|
||||
}
|
||||
case Phase::One:
|
||||
{
|
||||
if (x18_galleryTXTRDeps.empty())
|
||||
{
|
||||
x18_galleryTXTRDeps.reserve(5);
|
||||
for (int i=1 ; true ; ++i)
|
||||
{
|
||||
std::string depResName = hecl::Format("Gallery%02d_DGRP", i);
|
||||
if (!LoadTXTRDep(depResName))
|
||||
break;
|
||||
}
|
||||
LoadTXTRDep("GalleryAssets_DGRP");
|
||||
}
|
||||
if (!AreAllDepsLoaded(x18_galleryTXTRDeps))
|
||||
return EMessageReturn::Exit;
|
||||
// float dt = MakeMsg::GetParmTimerTick(msg).x4_parm;
|
||||
|
||||
x14_phase = Phase::Three;
|
||||
}
|
||||
case Phase::Two:
|
||||
case Phase::Three:
|
||||
{
|
||||
|
||||
}
|
||||
case Phase::Four:
|
||||
case Phase::Five:
|
||||
default: break;
|
||||
}
|
||||
|
||||
break;
|
||||
switch (x14_phase) {
|
||||
case Phase::Zero: {
|
||||
// if (!g_resLoader->AreAllPaksLoaded())
|
||||
//{
|
||||
// g_resLoader->AsyncIdlePakLoading();
|
||||
// return EMessageReturn::Exit;
|
||||
//}
|
||||
x14_phase = Phase::One;
|
||||
}
|
||||
case EArchMsgType::UserInput:
|
||||
default: break;
|
||||
case Phase::One: {
|
||||
if (x18_galleryTXTRDeps.empty()) {
|
||||
x18_galleryTXTRDeps.reserve(5);
|
||||
for (int i = 1; true; ++i) {
|
||||
std::string depResName = hecl::Format("Gallery%02d_DGRP", i);
|
||||
if (!LoadTXTRDep(depResName))
|
||||
break;
|
||||
}
|
||||
LoadTXTRDep("GalleryAssets_DGRP");
|
||||
}
|
||||
if (!AreAllDepsLoaded(x18_galleryTXTRDeps))
|
||||
return EMessageReturn::Exit;
|
||||
|
||||
x14_phase = Phase::Three;
|
||||
}
|
||||
case Phase::Two:
|
||||
case Phase::Three: {
|
||||
}
|
||||
case Phase::Four:
|
||||
case Phase::Five:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return EMessageReturn::Exit;
|
||||
break;
|
||||
}
|
||||
case EArchMsgType::UserInput:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return EMessageReturn::Exit;
|
||||
}
|
||||
|
||||
void CSlideShow::SSlideData::Draw() const
|
||||
{
|
||||
if (!IsLoaded())
|
||||
return;
|
||||
void CSlideShow::SSlideData::Draw() const {
|
||||
if (!IsLoaded())
|
||||
return;
|
||||
|
||||
zeus::CRectangle rect;
|
||||
const_cast<CTexturedQuadFilterAlpha&>(*m_texQuad).draw(x30_mulColor, 1.f, rect);
|
||||
zeus::CRectangle rect;
|
||||
const_cast<CTexturedQuadFilterAlpha&>(*m_texQuad).draw(x30_mulColor, 1.f, rect);
|
||||
|
||||
zeus::CVector2f centeredOffset((x28_canvasSize.x() - m_texQuad->GetTex()->GetWidth()) * 0.5f,
|
||||
(x28_canvasSize.y() - m_texQuad->GetTex()->GetHeight()) * 0.5f);
|
||||
zeus::CVector2f centeredOffset((x28_canvasSize.x() - m_texQuad->GetTex()->GetWidth()) * 0.5f,
|
||||
(x28_canvasSize.y() - m_texQuad->GetTex()->GetHeight()) * 0.5f);
|
||||
}
|
||||
|
||||
void CSlideShow::Draw() const
|
||||
{
|
||||
if (x14_phase == Phase::Five)
|
||||
{
|
||||
x5c_slideA.Draw();
|
||||
x90_slideB.Draw();
|
||||
}
|
||||
void CSlideShow::Draw() const {
|
||||
if (x14_phase == Phase::Five) {
|
||||
x5c_slideA.Draw();
|
||||
x90_slideB.Draw();
|
||||
}
|
||||
}
|
||||
|
||||
u32 CSlideShow::SlideShowGalleryFlags()
|
||||
{
|
||||
u32 ret = 0;
|
||||
if (!g_GameState)
|
||||
return ret;
|
||||
if (g_GameState->SystemOptions().GetLogScanPercent() >= 50)
|
||||
ret |= 1;
|
||||
if (g_GameState->SystemOptions().GetLogScanPercent() == 100)
|
||||
ret |= 2;
|
||||
if (g_GameState->SystemOptions().GetPlayerBeatHardMode())
|
||||
ret |= 4;
|
||||
if (g_GameState->SystemOptions().GetAllItemsCollected())
|
||||
ret |= 8;
|
||||
u32 CSlideShow::SlideShowGalleryFlags() {
|
||||
u32 ret = 0;
|
||||
if (!g_GameState)
|
||||
return ret;
|
||||
if (g_GameState->SystemOptions().GetLogScanPercent() >= 50)
|
||||
ret |= 1;
|
||||
if (g_GameState->SystemOptions().GetLogScanPercent() == 100)
|
||||
ret |= 2;
|
||||
if (g_GameState->SystemOptions().GetPlayerBeatHardMode())
|
||||
ret |= 4;
|
||||
if (g_GameState->SystemOptions().GetAllItemsCollected())
|
||||
ret |= 8;
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace urde
|
||||
|
||||
Reference in New Issue
Block a user