Skip to content

Commit 7322118

Browse files
committed
CDSwitcher: allow customizing font style & size
also bump version revision for 0.3 release
1 parent 508c2e0 commit 7322118

File tree

5 files changed

+29
-5
lines changed

5 files changed

+29
-5
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,15 @@ SwitcherEnable = false
8484
# Whether to display track title after switching
8585
SwitcherDisplayTitle = true
8686

87+
# Allows customizing the track title font (certain fonts may be missing glyphs such as square brackets)
88+
# Valid fonts are 0 to 9
89+
# SwitcherTitlePosition is where the track title is drawn on screen based on games original 640x480 screen dimensions
90+
SwitcherTitleFont = 2
91+
SwitcherTitleFontSizeX = 0.3
92+
SwitcherTitleFontSizeY = 0.5
93+
SwitcherTitlePositionX = 375
94+
SwitcherTitlePositionY = 450
95+
8796
# Gamepad button combinations to bind to the CD switcher
8897
# Combinations of buttons can be specified, eg. LB+Back to require both LeftBumper and Back button to be pressed
8998
# Any of the following can be specified in a combination:

src/dllmain.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ namespace Settings
6666

6767
spdlog::info(" - CDSwitcherEnable: {}", CDSwitcherEnable);
6868
spdlog::info(" - CDSwitcherDisplayTitle: {}", CDSwitcherDisplayTitle);
69+
spdlog::info(" - CDSwitcherTitleFont: {}", CDSwitcherTitleFont);
70+
spdlog::info(" - CDSwitcherTitleFontSizeX: {}", CDSwitcherTitleFontSizeX);
71+
spdlog::info(" - CDSwitcherTitleFontSizeY: {}", CDSwitcherTitleFontSizeY);
72+
spdlog::info(" - CDSwitcherTitlePositionX: {}", CDSwitcherTitlePositionX);
73+
spdlog::info(" - CDSwitcherTitlePositionY: {}", CDSwitcherTitlePositionY);
6974
spdlog::info(" - CDSwitcherTrackNext: {}", CDSwitcherTrackNext);
7075
spdlog::info(" - CDSwitcherTrackPrevious: {}", CDSwitcherTrackPrevious);
7176

@@ -135,6 +140,12 @@ namespace Settings
135140

136141
CDSwitcherEnable = ini.Get("CDSwitcher", "SwitcherEnable", std::move(CDSwitcherEnable));
137142
CDSwitcherDisplayTitle = ini.Get("CDSwitcher", "SwitcherDisplayTitle", std::move(CDSwitcherDisplayTitle));
143+
CDSwitcherTitleFont = ini.Get("CDSwitcher", "SwitcherTitleFont", std::move(CDSwitcherTitleFont));
144+
CDSwitcherTitleFont = std::clamp(CDSwitcherTitleFont, 0, 9);
145+
CDSwitcherTitleFontSizeX = ini.Get("CDSwitcher", "SwitcherTitleFontSizeX", std::move(CDSwitcherTitleFontSizeX));
146+
CDSwitcherTitleFontSizeY = ini.Get("CDSwitcher", "SwitcherTitleFontSizeY", std::move(CDSwitcherTitleFontSizeY));
147+
CDSwitcherTitlePositionX = ini.Get("CDSwitcher", "SwitcherTitlePositionX", std::move(CDSwitcherTitlePositionX));
148+
CDSwitcherTitlePositionY = ini.Get("CDSwitcher", "SwitcherTitlePositionY", std::move(CDSwitcherTitlePositionY));
138149
CDSwitcherTrackNext = ini.Get("CDSwitcher", "TrackNext", std::move(CDSwitcherTrackNext));
139150
CDSwitcherTrackPrevious = ini.Get("CDSwitcher", "TrackPrevious", std::move(CDSwitcherTrackPrevious));
140151

src/hooks_audio.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,9 @@ class CDSwitcher : public Hook
196196
if (SongTitleDisplayTimer > 0 && *Game::sel_bgm_kind_buf < Settings::CDTracks.size())
197197
{
198198
Game::sprSetFontPriority(4);
199-
Game::sprSetPrintFont(2);
200-
Game::sprSetFontScale(0.3f, 0.5f);
201-
Game::sprLocateP(375, 450);
199+
Game::sprSetPrintFont(Settings::CDSwitcherTitleFont);
200+
Game::sprSetFontScale(Settings::CDSwitcherTitleFontSizeX, Settings::CDSwitcherTitleFontSizeY);
201+
Game::sprLocateP(Settings::CDSwitcherTitlePositionX, Settings::CDSwitcherTitlePositionY);
202202

203203
uint32_t color = 0xFFFFFF;
204204
if (SongTitleDisplayTimer > SongTitleFadeBeginFrame)
@@ -211,7 +211,6 @@ class CDSwitcher : public Hook
211211
Game::sprSetFontColor(color);
212212

213213
const auto& song = Settings::CDTracks[*Game::sel_bgm_kind_buf].second;
214-
//std::string songText = std::format("#{:02}. {}", (*Game::sel_bgm_kind_buf) + 1, song);
215214
Game::sprPrintf("#%02d. %s", (*Game::sel_bgm_kind_buf) + 1, song.c_str());
216215

217216
SongTitleDisplayTimer -= numUpdates;

src/plugin.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ namespace Settings
5757

5858
inline bool CDSwitcherEnable = false;
5959
inline bool CDSwitcherDisplayTitle = true;
60+
inline int CDSwitcherTitleFont = 2;
61+
inline float CDSwitcherTitleFontSizeX = 0.3f;
62+
inline float CDSwitcherTitleFontSizeY = 0.5f;
63+
inline int CDSwitcherTitlePositionX = 375;
64+
inline int CDSwitcherTitlePositionY = 450;
6065
inline std::string CDSwitcherTrackNext = "Back";
6166
inline std::string CDSwitcherTrackPrevious = "RS+Back";
6267

src/resource.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#define MODULE_VERSION_MAJOR 0
1717
#define MODULE_VERSION_MINOR 3
1818
#define MODULE_VERSION_BUILD 0
19-
#define MODULE_VERSION_REVISION 0
19+
#define MODULE_VERSION_REVISION 3
2020

2121
#define STR(value) #value
2222
#define STRINGIZE(value) STR(value)

0 commit comments

Comments
 (0)