diff --git a/UnleashedRecomp/CMakeLists.txt b/UnleashedRecomp/CMakeLists.txt index 17c1b2ea..ec385879 100644 --- a/UnleashedRecomp/CMakeLists.txt +++ b/UnleashedRecomp/CMakeLists.txt @@ -111,6 +111,7 @@ set(SWA_PATCHES_CXX_SOURCES set(SWA_UI_CXX_SOURCES "ui/achievement_menu.cpp" "ui/achievement_overlay.cpp" + "ui/button_guide.cpp" "ui/message_window.cpp" "ui/options_menu.cpp" "ui/sdl_listener.cpp" @@ -319,8 +320,11 @@ set(RESOURCES_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/res") BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/achievements_menu/trophy.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/achievements_menu/trophy.dds" ARRAY_NAME "g_trophy" COMPRESSION_TYPE "zstd") BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/general_window.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/general_window.dds" ARRAY_NAME "g_general_window" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/left_mouse_button.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/left_mouse_button.dds" ARRAY_NAME "g_left_mouse_button" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/mat_comon_x360_001.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/mat_comon_x360_001.dds" ARRAY_NAME "g_mat_comon_x360_001" COMPRESSION_TYPE "zstd") BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/select_fade.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/select_fade.dds" ARRAY_NAME "g_select_fade" COMPRESSION_TYPE "zstd") BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/select_fill.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/select_fill.dds" ARRAY_NAME "g_select_fill" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/start_back.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/start_back.dds" ARRAY_NAME "g_start_back" COMPRESSION_TYPE "zstd") BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/game_icon.bmp" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/game_icon.bmp" ARRAY_NAME "g_game_icon") BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/game_icon_night.bmp" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/game_icon_night.bmp" ARRAY_NAME "g_game_icon_night") BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/font/im_font_atlas.bin" DEST_FILE "${RESOURCES_OUTPUT_PATH}/font/im_font_atlas.bin" ARRAY_NAME "g_im_font_atlas" COMPRESSION_TYPE "zstd") diff --git a/UnleashedRecomp/gpu/video.cpp b/UnleashedRecomp/gpu/video.cpp index 5dbd5dfc..059d8c5f 100644 --- a/UnleashedRecomp/gpu/video.cpp +++ b/UnleashedRecomp/gpu/video.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include @@ -1078,6 +1079,7 @@ static void CreateImGuiBackend() AchievementMenu::Init(); AchievementOverlay::Init(); + ButtonGuide::Init(); MessageWindow::Init(); OptionsMenu::Init(); @@ -1787,6 +1789,7 @@ static void DrawImGui() OptionsMenu::Draw(); AchievementOverlay::Draw(); MessageWindow::Draw(); + ButtonGuide::Draw(); ImGui::Render(); diff --git a/UnleashedRecomp/locale/locale.h b/UnleashedRecomp/locale/locale.h index 12757bb4..541271e8 100644 --- a/UnleashedRecomp/locale/locale.h +++ b/UnleashedRecomp/locale/locale.h @@ -83,6 +83,36 @@ inline static std::unordered_map #include #include +#include #include #include #include @@ -656,6 +657,8 @@ void AchievementMenu::Open() return std::get<1>(a) > std::get<1>(b); }); + ButtonGuide::Open({ Button(Localise("Common_Back"), EButtonIcon::B) }); + ResetSelection(); Game_PlaySound("sys_actstg_pausewinopen"); } @@ -668,6 +671,8 @@ void AchievementMenu::Close() g_isClosing = true; } + ButtonGuide::Close(); + Game_PlaySound("sys_actstg_pausewinclose"); Game_PlaySound("sys_actstg_pausecansel"); } diff --git a/UnleashedRecomp/ui/button_guide.cpp b/UnleashedRecomp/ui/button_guide.cpp new file mode 100644 index 00000000..213ea5f0 --- /dev/null +++ b/UnleashedRecomp/ui/button_guide.cpp @@ -0,0 +1,305 @@ +#include "button_guide.h" +#include "imgui_utils.h" +#include +#include +#include +#include +#include +#include + +constexpr float DEFAULT_SIDE_MARGINS = 379; + +ImFont* g_fntNewRodin; +ImFont* g_fntNewRodinLQ; + +std::unique_ptr g_upIcons; +std::unique_ptr g_upLMBIcon; +std::unique_ptr g_upStartBackIcons; + +float g_sideMargins = DEFAULT_SIDE_MARGINS; + +std::vector