diff --git a/include/dusk/config.hpp b/include/dusk/config.hpp index 0fd0ad8556..ace11cb424 100644 --- a/include/dusk/config.hpp +++ b/include/dusk/config.hpp @@ -116,7 +116,7 @@ ConfigVarBase* GetConfigVar(std::string_view name); * * For detect first run to prompt the user to choose a preset. */ -bool WasConfigFileMissing(); +bool IsConfigFileMissing(); template const ConfigImplBase* GetConfigImpl() { diff --git a/libs/JSystem/src/JAudio2/JAIStream.cpp b/libs/JSystem/src/JAudio2/JAIStream.cpp index 5799080b12..4c91b1a34a 100644 --- a/libs/JSystem/src/JAudio2/JAIStream.cpp +++ b/libs/JSystem/src/JAudio2/JAIStream.cpp @@ -6,6 +6,10 @@ #include "JSystem/JAudio2/JAIStreamDataMgr.h" #include "JSystem/JAudio2/JAIAudience.h" +#if TARGET_PC +#include +#endif + static void JAIStream_JASAramStreamCallback_(u32 type, JASAramStream* aramStream, void* userData) { JAIStream* stream = (JAIStream*)userData; @@ -35,6 +39,12 @@ JAIStream::JAIStream(JAIStreamMgr* streamMgr, JAISoundStrategyMgr* so void JAIStream::JAIStreamMgr_startID_(JAISoundID id, s32 streamFileEntry, const JGeometry::TVec3* posPtr, JAIAudience* audience, int category) { + #if TARGET_PC + if (dusk::config::IsConfigFileMissing()) { + return; + } + #endif + field_0x298 = category; field_0x294 = streamFileEntry; start_JAISound_(id, posPtr, audience); diff --git a/src/d/actor/d_a_title.cpp b/src/d/actor/d_a_title.cpp index 88ce62ec5c..dad25c74ce 100644 --- a/src/d/actor/d_a_title.cpp +++ b/src/d/actor/d_a_title.cpp @@ -18,6 +18,10 @@ #include "JSystem/J2DGraph/J2DTextBox.h" #include "m_Do/m_Do_graphic.h" +#if TARGET_PC +#include +#endif + class daTit_HIO_c : public JORReflexible { public: daTit_HIO_c(); @@ -152,6 +156,12 @@ int daTitle_c::createHeapCallBack(fopAc_ac_c* actor) { } int daTitle_c::Execute() { + #if TARGET_PC + if (dusk::config::IsConfigFileMissing()) { + return 0; + } + #endif + #if PLATFORM_WII || PLATFORM_SHIELD mDoGph_gInf_c::resetDimming(); #endif @@ -364,6 +374,12 @@ int daTitle_c::getDemoPrm() { } int daTitle_c::Draw() { + #if TARGET_PC + if (dusk::config::IsConfigFileMissing()) { + return 0; + } + #endif + J3DModelData* modelData = mpModel->getModelData(); cMtx_trans(mpModel->getBaseTRMtx(), IREG_F(7), IREG_F(8), IREG_F(9) + -430.0f); mpModel->getBaseScale()->x = -1.0f; diff --git a/src/d/d_s_play.cpp b/src/d/d_s_play.cpp index 3ef8ea7eb2..6dff510bc6 100644 --- a/src/d/d_s_play.cpp +++ b/src/d/d_s_play.cpp @@ -39,7 +39,10 @@ #include "JSystem/JKernel/JKRAram.h" #include "JSystem/JKernel/JKRAramArchive.h" +#if TARGET_PC #include "dusk/memory.h" +#include +#endif #if DEBUG #include "d/d_s_menu.h" @@ -698,6 +701,10 @@ static u8 lbl_8074CAE4; static u32 l_sceneChangeStartTick; #endif +#if TARGET_PC +BOOL firstTime = FALSE; +#endif + static int dScnPly_Execute(dScnPly_c* i_this) { #if DEBUG fapGm_HIO_c::startCpuTimer(); @@ -778,7 +785,19 @@ static int dScnPly_Execute(dScnPly_c* i_this) { dJprev_c::get()->update(); #endif + #if TARGET_PC + if (dusk::config::IsConfigFileMissing()) { + firstTime = true; + } else if (firstTime) { + mDoAud_seStart(Z2SE_TITLE_ENTER, NULL, 0, 0); + JUTGamePad::C3ButtonReset::sResetSwitchPushing = true; + firstTime = false; + } else { + dDemo_c::update(); + } + #else dDemo_c::update(); + #endif #if DEBUG dJcame_c::get()->update(); diff --git a/src/dusk/config.cpp b/src/dusk/config.cpp index 1fa2e689b6..45089ed726 100644 --- a/src/dusk/config.cpp +++ b/src/dusk/config.cpp @@ -212,9 +212,11 @@ void dusk::config::Save() { } io::FileStream::WriteAllText(configJsonPath.c_str(), j.dump(4)); + + s_configFileMissing = false; } -bool dusk::config::WasConfigFileMissing() { +bool dusk::config::IsConfigFileMissing() { return s_configFileMissing; } diff --git a/src/dusk/imgui/ImGuiConsole.cpp b/src/dusk/imgui/ImGuiConsole.cpp index 7140af5fc7..5b025e15ab 100644 --- a/src/dusk/imgui/ImGuiConsole.cpp +++ b/src/dusk/imgui/ImGuiConsole.cpp @@ -179,15 +179,16 @@ namespace dusk { ImGuiConsole::ImGuiConsole() {} void ImGuiConsole::PreDraw() { + if (config::IsConfigFileMissing()) { + m_firstRunPreset.draw(); + return; + } + if (!m_isLaunchInitialized) { m_toasts.emplace_back("Press F1 to toggle menu"s, 5.f); m_isLaunchInitialized = true; } - if (config::WasConfigFileMissing()) { - m_firstRunPreset.draw(); - } - getTransientSettings().skipFrameRateLimit = getSettings().game.enableTurboKeybind && ImGui::IsKeyDown(ImGuiKey_Tab); if ((ImGui::IsKeyDown(ImGuiKey_LeftCtrl) || ImGui::IsKeyDown(ImGuiKey_RightCtrl)) &&