@@ -108,21 +108,25 @@ Difficulty GetDifficulty() {
108108 return (Difficulty)(*DIFFICULTY);
109109}
110110
111- SongData* GetSongData () {
112- return *(SongData**)0x140d0a920 ;
111+ SongData GetSongData () {
112+ SongData sd;
113+ sd.isLong = *(char *)0x140D0A590 ;
114+ memcpy (sd.songName , (void *)0x140D0A578 , sizeof (sd.songName ));
115+ sd.songID = *(int *)0x140CDD8E0 ;
116+ return sd;
113117}
114118
115- void GetSongName (SongData* song, char * buffer, rsize_t bufferSize) {
119+ void GetSongName (SongData song, char * buffer, rsize_t bufferSize) {
116120 char * defaultSongName;
117- if (song-> isLong > 0x0f )
121+ if (song. isLong > 0x0f )
118122 {
119- defaultSongName = *(char **)song-> songName ;
123+ defaultSongName = *(char **)song. songName ;
120124 }
121125 else
122126 {
123- defaultSongName = song-> songName ;
127+ defaultSongName = song. songName ;
124128 }
125- GetOverrideName (song-> songID , defaultSongName, buffer, bufferSize);
129+ GetOverrideName (song. songID , defaultSongName, buffer, bufferSize);
126130}
127131void GetSongName (char * buffer, rsize_t bufferSize) {
128132 auto song = GetSongData ();
@@ -134,7 +138,7 @@ char lastState = 0x01;
134138void OnGameStateChange () {
135139 auto song = GetSongData ();
136140 // Filter out the Dummy stage
137- char isPlayingGame = song-> songID == 999 ? 0 : *IS_PLAYING_GAME;
141+ char isPlayingGame = song. songID == 999 ? 0 : *IS_PLAYING_GAME;
138142 if (isPlayingGame != lastState)
139143 {
140144 char songName[100 ];
0 commit comments