From 1dfed8adeb0ba3c6c8d354e915bf35f0a7ae4304 Mon Sep 17 00:00:00 2001 From: korenkonder Date: Sun, 8 Oct 2023 22:46:38 +0300 Subject: [PATCH] Forgot one thing --- src/ReDIVA/pv_game/pv_game.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/ReDIVA/pv_game/pv_game.cpp b/src/ReDIVA/pv_game/pv_game.cpp index 27bfbf40..7690c900 100644 --- a/src/ReDIVA/pv_game/pv_game.cpp +++ b/src/ReDIVA/pv_game/pv_game.cpp @@ -2303,18 +2303,24 @@ std::string pv_game::get_song_name() { std::string pv_game::get_song_file_name(int32_t& ex_song_index) { ex_song_index = -1; + std::string song_file_name; + song_file_name.assign(data.pv->song_file_name); + const pv_db_pv* pv = data.pv; if (pv->ex_song.data.size()) { if (data.play_data.ex_song_index < 0) { int32_t _ex_song_index = sub_1400FCFD0(data.chara, pv); if (_ex_song_index >= 0 && _ex_song_index < pv->ex_song.data.size()) { ex_song_index = _ex_song_index; - return pv->ex_song.data[_ex_song_index].file; + song_file_name.assign(pv->ex_song.data[_ex_song_index].file); } } - else if (data.play_data.ex_song_index > 0 && data.play_data.ex_song_index <= pv->ex_song.data.size()) { - ex_song_index = data.play_data.ex_song_index - 1; - return pv->ex_song.data[data.play_data.ex_song_index - 1LL].file; + else { + if (data.play_data.ex_song_index > 0 + && data.play_data.ex_song_index <= pv->ex_song.data.size()) { + ex_song_index = data.play_data.ex_song_index - 1; + song_file_name.assign(pv->ex_song.data[data.play_data.ex_song_index - 1LL].file); + } } } @@ -2326,12 +2332,13 @@ std::string pv_game::get_song_file_name(int32_t& ex_song_index) { v15 = &v13->field_28[v13->field_0.stage_index]; if (pv->another_song.size() && v15->field_2C.another_song_index < pv->another_song.size()) { - const std::string& another_song_file_name = pv->another_song[v15->field_2C.another_song_index].song_file_name; + const std::string& another_song_file_name = pv->another_song[ + v15->field_2C.another_song_index].song_file_name; if (another_song_file_name.size()) - return another_song_file_name; + song_file_name.assign(another_song_file_name); } - return data.pv->song_file_name; + return song_file_name; } task_stage_info pv_game::get_stage_info(int32_t stage_index) {