forked from HarbourMasters/Shipwright
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
rework "Authentic Logo Screen" and "Fast File Select" (HarbourMasters…
…#4939) * skip z_title with button press * use `RegisterShipInitFunc` * rip out a bunch of custom ztitle code * ok now it's almost fully back to vanilla * titles are back for a limited time enjoy #Skipping * move old customizations into new custom draw * finally getting the hang of this shipinit thing * vb should let it snow * boot sequence logic * clean up logic to better handle changing boot sequence settings * remove fast file select stuff * remove authentic logo screen setting * about window - not super pretty but not ugly imo * maybe this fixes windows * maybe alloca? idk why it's working in other files * just pulling in every include hoping something works * Revert This reverts commit c1d02c9. * try some macro fixing magic * fix another c vs cpp thing * do it without an extra var * make `GitCommitHashTruncated` a private member on `AboutWindow` instead of truncating on draw * move logo asset defs to `soh_assets.h` * Apply suggestions from code review Co-authored-by: Archez <[email protected]> * VB_SHOULDN'T --------- Co-authored-by: Archez <[email protected]>
- Loading branch information
1 parent
6d94cf9
commit 388eb48
Showing
16 changed files
with
423 additions
and
241 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
#include "AboutWindow.h" | ||
#include <imgui.h> | ||
#include <soh/GameVersions.h> | ||
#include "soh/ResourceManagerHelpers.h" | ||
|
||
extern "C" { | ||
#include "variables.h" | ||
} | ||
|
||
AboutWindow::~AboutWindow() { | ||
SPDLOG_TRACE("destruct about window"); | ||
} | ||
|
||
void AboutWindow::InitElement() { | ||
mIsTaggedVersion = gGitCommitTag[0] != 0; | ||
|
||
strncpy(mGitCommitHashTruncated, (char*)gGitCommitHash, 7); | ||
mGitCommitHashTruncated[7] = 0; | ||
} | ||
|
||
void AboutWindow::Draw() { | ||
if (!IsVisible()) { | ||
return; | ||
} | ||
|
||
ImGuiWindowFlags windowFlags = ImGuiWindowFlags_AlwaysAutoResize | | ||
ImGuiWindowFlags_NoResize | | ||
ImGuiWindowFlags_NoDocking | | ||
ImGuiWindowFlags_NoScrollWithMouse | | ||
ImGuiWindowFlags_NoScrollbar; | ||
|
||
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(16 * ImGui::GetIO().FontGlobalScale, 8 * ImGui::GetIO().FontGlobalScale)); | ||
|
||
if (!ImGui::Begin(GetName().c_str(), &mIsVisible, windowFlags)) { | ||
ImGui::End(); | ||
} else { | ||
DrawElement(); | ||
ImGui::End(); | ||
} | ||
|
||
ImGui::PopStyleVar(); | ||
|
||
// Sync up the IsVisible flag if it was changed by ImGui | ||
SyncVisibilityConsoleVariable(); | ||
} | ||
|
||
const char* AboutWindow::GetGameVersionString(uint32_t index) { | ||
uint32_t gameVersion = ResourceMgr_GetGameVersion(index); | ||
switch (gameVersion) { | ||
case OOT_NTSC_US_10: | ||
return "NTSC-U 1.0"; | ||
case OOT_NTSC_US_11: | ||
return "NTSC-U 1.1"; | ||
case OOT_NTSC_US_12: | ||
return "NTSC-U 1.2"; | ||
case OOT_PAL_10: | ||
return "PAL 1.0"; | ||
case OOT_PAL_11: | ||
return "PAL 1.1"; | ||
case OOT_PAL_GC: | ||
return "PAL GC"; | ||
case OOT_PAL_MQ: | ||
return "PAL MQ"; | ||
case OOT_PAL_GC_DBG1: | ||
case OOT_PAL_GC_DBG2: | ||
return "PAL GC-D"; | ||
case OOT_PAL_GC_MQ_DBG: | ||
return "PAL MQ-D"; | ||
case OOT_IQUE_CN: | ||
return "IQUE CN"; | ||
case OOT_IQUE_TW: | ||
return "IQUE TW"; | ||
default: | ||
return "UNKNOWN"; | ||
} | ||
} | ||
|
||
void AboutWindow::DrawElement() { | ||
// The icon is already padded - adjust for that | ||
ImVec2 cursorPos = ImGui::GetCursorScreenPos(); | ||
cursorPos.x -= 16 * ImGui::GetIO().FontGlobalScale; | ||
ImGui::SetCursorScreenPos(cursorPos); | ||
|
||
ImGui::Image(Ship::Context::GetInstance()->GetWindow()->GetGui()->GetTextureByName("Game_Icon"), ImVec2(64.0f * ImGui::GetIO().FontGlobalScale, 64.0f * ImGui::GetIO().FontGlobalScale)); | ||
|
||
ImGui::SameLine(); | ||
|
||
ImGui::BeginGroup(); | ||
ImGui::Text("Ship of Harkinian"); | ||
if (mIsTaggedVersion) { | ||
ImGui::Text("%s", gBuildVersion); | ||
} else { | ||
ImGui::Text("%s", gGitBranch); | ||
ImGui::Text("%s", mGitCommitHashTruncated); | ||
} | ||
ImGui::EndGroup(); | ||
|
||
ImGui::Dummy(ImVec2(0, 2 * ImGui::GetIO().FontGlobalScale)); | ||
ImGui::Text("Game Archives:"); | ||
for (uint32_t i = 0; i < ResourceMgr_GetNumGameVersions(); i++) { | ||
ImGui::BulletText(GetGameVersionString(i)); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#pragma once | ||
|
||
#include <libultraship/libultraship.h> | ||
|
||
class AboutWindow : public Ship::GuiWindow { | ||
public: | ||
using GuiWindow::GuiWindow; | ||
~AboutWindow(); | ||
|
||
private: | ||
void InitElement() override; | ||
void Draw() override; | ||
void DrawElement() override; | ||
void UpdateElement() override {}; | ||
|
||
const char* GetGameVersionString(uint32_t index); | ||
|
||
bool mIsTaggedVersion; | ||
char mGitCommitHashTruncated[8]; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.