mirror of
https://github.com/stenzek/duckstation.git
synced 2024-11-23 05:49:43 +00:00
GunCon: Allow empty/disabled crosshair
Some checks failed
GameDB Lint / gamedb-lint (push) Has been cancelled
Automated Builds / 💻 Windows (push) Has been cancelled
Automated Builds / 🐧 Linux AppImage (push) Has been cancelled
Automated Builds / 📦 Linux Flatpak (push) Has been cancelled
Automated Builds / 🍎 MacOS (push) Has been cancelled
Automated Builds / 📤 Create Release (push) Has been cancelled
Some checks failed
GameDB Lint / gamedb-lint (push) Has been cancelled
Automated Builds / 💻 Windows (push) Has been cancelled
Automated Builds / 🐧 Linux AppImage (push) Has been cancelled
Automated Builds / 📦 Linux Flatpak (push) Has been cancelled
Automated Builds / 🍎 MacOS (push) Has been cancelled
Automated Builds / 📤 Create Release (push) Has been cancelled
This commit is contained in:
parent
8ec9c90c82
commit
3cf7a94d1e
@ -288,10 +288,16 @@ static const Controller::ControllerBindingInfo s_binding_info[] = {
|
|||||||
#undef BUTTON
|
#undef BUTTON
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef __ANDROID__
|
||||||
|
static constexpr const char* DEFAULT_CROSSHAIR_PATH = "images" FS_OSPATH_SEPARATOR_STR "crosshair.png";
|
||||||
|
#else
|
||||||
|
static constexpr const char* DEFAULT_CROSSHAIR_PATH = "";
|
||||||
|
#endif
|
||||||
|
|
||||||
static const SettingInfo s_settings[] = {
|
static const SettingInfo s_settings[] = {
|
||||||
{SettingInfo::Type::Path, "CrosshairImagePath", TRANSLATE_NOOP("GunCon", "Crosshair Image Path"),
|
{SettingInfo::Type::Path, "CrosshairImagePath", TRANSLATE_NOOP("GunCon", "Crosshair Image Path"),
|
||||||
TRANSLATE_NOOP("GunCon", "Path to an image to use as a crosshair/cursor."), nullptr, nullptr, nullptr, nullptr,
|
TRANSLATE_NOOP("GunCon", "Path to an image to use as a crosshair/cursor."), DEFAULT_CROSSHAIR_PATH, nullptr, nullptr,
|
||||||
nullptr, nullptr, 0.0f},
|
nullptr, nullptr, nullptr, 0.0f},
|
||||||
{SettingInfo::Type::Float, "CrosshairScale", TRANSLATE_NOOP("GunCon", "Crosshair Image Scale"),
|
{SettingInfo::Type::Float, "CrosshairScale", TRANSLATE_NOOP("GunCon", "Crosshair Image Scale"),
|
||||||
TRANSLATE_NOOP("GunCon", "Scale of crosshair image on screen."), "1.0", "0.0001", "100.0", "0.10", "%.0f%%", nullptr,
|
TRANSLATE_NOOP("GunCon", "Scale of crosshair image on screen."), "1.0", "0.0001", "100.0", "0.10", "%.0f%%", nullptr,
|
||||||
100.0f},
|
100.0f},
|
||||||
@ -313,7 +319,7 @@ void GunCon::LoadSettings(const SettingsInterface& si, const char* section, bool
|
|||||||
|
|
||||||
m_x_scale = si.GetFloatValue(section, "XScale", 1.0f);
|
m_x_scale = si.GetFloatValue(section, "XScale", 1.0f);
|
||||||
|
|
||||||
std::string cursor_path = si.GetStringValue(section, "CrosshairImagePath");
|
std::string cursor_path = si.GetStringValue(section, "CrosshairImagePath", DEFAULT_CROSSHAIR_PATH);
|
||||||
const float cursor_scale = si.GetFloatValue(section, "CrosshairScale", 1.0f);
|
const float cursor_scale = si.GetFloatValue(section, "CrosshairScale", 1.0f);
|
||||||
u32 cursor_color = 0xFFFFFF;
|
u32 cursor_color = 0xFFFFFF;
|
||||||
if (std::string cursor_color_str = si.GetStringValue(section, "CrosshairColor", ""); !cursor_color_str.empty())
|
if (std::string cursor_color_str = si.GetStringValue(section, "CrosshairColor", ""); !cursor_color_str.empty())
|
||||||
@ -326,11 +332,6 @@ void GunCon::LoadSettings(const SettingsInterface& si, const char* section, bool
|
|||||||
cursor_color = cursor_color_opt.value();
|
cursor_color = cursor_color_opt.value();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef __ANDROID__
|
|
||||||
if (cursor_path.empty())
|
|
||||||
cursor_path = Path::Combine(EmuFolders::Resources, "images/crosshair.png");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const s32 prev_pointer_index = GetSoftwarePointerIndex();
|
const s32 prev_pointer_index = GetSoftwarePointerIndex();
|
||||||
|
|
||||||
m_has_relative_binds = (si.ContainsValue(section, "RelativeLeft") || si.ContainsValue(section, "RelativeRight") ||
|
m_has_relative_binds = (si.ContainsValue(section, "RelativeLeft") || si.ContainsValue(section, "RelativeRight") ||
|
||||||
@ -350,7 +351,7 @@ void GunCon::LoadSettings(const SettingsInterface& si, const char* section, bool
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Pointer changed, so need to update software cursor.
|
// Pointer changed, so need to update software cursor.
|
||||||
const bool had_software_cursor = m_cursor_path.empty();
|
const bool had_software_cursor = !m_cursor_path.empty();
|
||||||
m_cursor_path = std::move(cursor_path);
|
m_cursor_path = std::move(cursor_path);
|
||||||
m_cursor_scale = cursor_scale;
|
m_cursor_scale = cursor_scale;
|
||||||
m_cursor_color = cursor_color;
|
m_cursor_color = cursor_color;
|
||||||
@ -358,7 +359,17 @@ void GunCon::LoadSettings(const SettingsInterface& si, const char* section, bool
|
|||||||
{
|
{
|
||||||
if (!m_cursor_path.empty())
|
if (!m_cursor_path.empty())
|
||||||
{
|
{
|
||||||
ImGuiManager::SetSoftwareCursor(new_pointer_index, m_cursor_path, m_cursor_scale, m_cursor_color);
|
std::string image_path;
|
||||||
|
#ifndef __ANDROID__
|
||||||
|
if (!Path::IsAbsolute(m_cursor_path))
|
||||||
|
image_path = Path::Combine(EmuFolders::Resources, m_cursor_path);
|
||||||
|
else
|
||||||
|
image_path = m_cursor_path;
|
||||||
|
#else
|
||||||
|
image_path = m_cursor_path;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ImGuiManager::SetSoftwareCursor(new_pointer_index, std::move(image_path), m_cursor_scale, m_cursor_color);
|
||||||
if (m_has_relative_binds)
|
if (m_has_relative_binds)
|
||||||
UpdateSoftwarePointerPosition();
|
UpdateSoftwarePointerPosition();
|
||||||
}
|
}
|
||||||
|
@ -351,10 +351,16 @@ static const Controller::ControllerBindingInfo s_binding_info[] = {
|
|||||||
#undef BUTTON
|
#undef BUTTON
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef __ANDROID__
|
||||||
|
static constexpr const char* DEFAULT_CROSSHAIR_PATH = "images" FS_OSPATH_SEPARATOR_STR "crosshair.png";
|
||||||
|
#else
|
||||||
|
static constexpr const char* DEFAULT_CROSSHAIR_PATH = "";
|
||||||
|
#endif
|
||||||
|
|
||||||
static const SettingInfo s_settings[] = {
|
static const SettingInfo s_settings[] = {
|
||||||
{SettingInfo::Type::Path, "CrosshairImagePath", TRANSLATE_NOOP("Justifier", "Crosshair Image Path"),
|
{SettingInfo::Type::Path, "CrosshairImagePath", TRANSLATE_NOOP("Justifier", "Crosshair Image Path"),
|
||||||
TRANSLATE_NOOP("Justifier", "Path to an image to use as a crosshair/cursor."), nullptr, nullptr, nullptr, nullptr,
|
TRANSLATE_NOOP("Justifier", "Path to an image to use as a crosshair/cursor."), DEFAULT_CROSSHAIR_PATH, nullptr,
|
||||||
nullptr, nullptr, 0.0f},
|
nullptr, nullptr, nullptr, nullptr, 0.0f},
|
||||||
{SettingInfo::Type::Float, "CrosshairScale", TRANSLATE_NOOP("Justifier", "Crosshair Image Scale"),
|
{SettingInfo::Type::Float, "CrosshairScale", TRANSLATE_NOOP("Justifier", "Crosshair Image Scale"),
|
||||||
TRANSLATE_NOOP("Justifier", "Scale of crosshair image on screen."), "1.0", "0.0001", "100.0", "0.10", "%.0f%%",
|
TRANSLATE_NOOP("Justifier", "Scale of crosshair image on screen."), "1.0", "0.0001", "100.0", "0.10", "%.0f%%",
|
||||||
nullptr, 100.0f},
|
nullptr, 100.0f},
|
||||||
@ -402,7 +408,7 @@ void Justifier::LoadSettings(const SettingsInterface& si, const char* section, b
|
|||||||
|
|
||||||
m_x_scale = si.GetFloatValue(section, "XScale", 1.0f);
|
m_x_scale = si.GetFloatValue(section, "XScale", 1.0f);
|
||||||
|
|
||||||
std::string cursor_path = si.GetStringValue(section, "CrosshairImagePath");
|
std::string cursor_path = si.GetStringValue(section, "CrosshairImagePath", DEFAULT_CROSSHAIR_PATH);
|
||||||
const float cursor_scale = si.GetFloatValue(section, "CrosshairScale", 1.0f);
|
const float cursor_scale = si.GetFloatValue(section, "CrosshairScale", 1.0f);
|
||||||
u32 cursor_color = 0xFFFFFF;
|
u32 cursor_color = 0xFFFFFF;
|
||||||
if (std::string cursor_color_str = si.GetStringValue(section, "CrosshairColor", ""); !cursor_color_str.empty())
|
if (std::string cursor_color_str = si.GetStringValue(section, "CrosshairColor", ""); !cursor_color_str.empty())
|
||||||
@ -415,11 +421,6 @@ void Justifier::LoadSettings(const SettingsInterface& si, const char* section, b
|
|||||||
cursor_color = cursor_color_opt.value();
|
cursor_color = cursor_color_opt.value();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef __ANDROID__
|
|
||||||
if (cursor_path.empty())
|
|
||||||
cursor_path = Path::Combine(EmuFolders::Resources, "images/crosshair.png");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const s32 prev_pointer_index = GetSoftwarePointerIndex();
|
const s32 prev_pointer_index = GetSoftwarePointerIndex();
|
||||||
|
|
||||||
m_has_relative_binds = (si.ContainsValue(section, "RelativeLeft") || si.ContainsValue(section, "RelativeRight") ||
|
m_has_relative_binds = (si.ContainsValue(section, "RelativeLeft") || si.ContainsValue(section, "RelativeRight") ||
|
||||||
@ -439,7 +440,7 @@ void Justifier::LoadSettings(const SettingsInterface& si, const char* section, b
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Pointer changed, so need to update software cursor.
|
// Pointer changed, so need to update software cursor.
|
||||||
const bool had_software_cursor = m_cursor_path.empty();
|
const bool had_software_cursor = !m_cursor_path.empty();
|
||||||
m_cursor_path = std::move(cursor_path);
|
m_cursor_path = std::move(cursor_path);
|
||||||
m_cursor_scale = cursor_scale;
|
m_cursor_scale = cursor_scale;
|
||||||
m_cursor_color = cursor_color;
|
m_cursor_color = cursor_color;
|
||||||
@ -447,7 +448,17 @@ void Justifier::LoadSettings(const SettingsInterface& si, const char* section, b
|
|||||||
{
|
{
|
||||||
if (!m_cursor_path.empty())
|
if (!m_cursor_path.empty())
|
||||||
{
|
{
|
||||||
ImGuiManager::SetSoftwareCursor(new_pointer_index, m_cursor_path, m_cursor_scale, m_cursor_color);
|
std::string image_path;
|
||||||
|
#ifndef __ANDROID__
|
||||||
|
if (!Path::IsAbsolute(m_cursor_path))
|
||||||
|
image_path = Path::Combine(EmuFolders::Resources, m_cursor_path);
|
||||||
|
else
|
||||||
|
image_path = m_cursor_path;
|
||||||
|
#else
|
||||||
|
image_path = m_cursor_path;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ImGuiManager::SetSoftwareCursor(new_pointer_index, std::move(image_path), m_cursor_scale, m_cursor_color);
|
||||||
if (m_has_relative_binds)
|
if (m_has_relative_binds)
|
||||||
UpdateSoftwarePointerPosition();
|
UpdateSoftwarePointerPosition();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user