diff --git a/src/game/boe.dlgutil.cpp b/src/game/boe.dlgutil.cpp index f959c27f..0ab05e44 100644 --- a/src/game/boe.dlgutil.cpp +++ b/src/game/boe.dlgutil.cpp @@ -1826,6 +1826,47 @@ class cFilePicker { cStack& stk = get_stack(); int num_pages = ceil((float)save_file_mtimes.size() / parties_per_page); stk.setPageCount(num_pages); + // HACK: For some reason which should be fixed, the buttons and labels on subsequent pages + // aren't getting text on the static buttons and labels + std::string save_button_text = me["save1"].getText(); + std::string ext_label_text = me["file1-extension-label"].getText(); + std::string load_button_text = me["load1"].getText(); + std::string auto_button_text = me["auto1"].getText(); + std::string newer_label_text = me["auto1-more-recent"].getText(); + for(int i = 0; i < stk.getPageCount(); ++i){ + stk.setPage(i); + if(saving){ + me["title-load"].hide(); + me["title-auto"].hide(); + me["file1"].setText(""); // Keep the frame + me["file1-extension-label"].setText(ext_label_text); + for(int i = 0; i < SLOTS_PER_PAGE; ++i){ + me["save" + std::to_string(i+1)].setText(save_button_text); + me["load" + std::to_string(i+1)].hide(); + } + }else{ + if(picking_auto){ + me["title-load"].hide(); + std::string title = me["title-auto"].getText(); + fs::path party_name = save_folder.filename(); + party_name.replace_extension(); + boost::replace_first(title, "{Folder}", party_name.string()); + me["title-auto"].setText(title); + }else{ + me["title-auto"].hide(); + } + me["title-save"].hide(); + me["file1-field"].hide(); + me["file1-extension-label"].hide(); + for(int i = 0; i < SLOTS_PER_PAGE; ++i){ + me["save" + std::to_string(i+1)].hide(); + me["load" + std::to_string(i+1)].setText(load_button_text); + me["auto" + std::to_string(i+1)].setText(auto_button_text); + me["auto" + std::to_string(i+1) + "-more-recent"].setText(newer_label_text); + } + } + } + stk.setPage(0); } void empty_slot(int idx) { @@ -2083,32 +2124,6 @@ public: fs::path run() { template_info_str = me["info1"].getText(); - if(saving){ - me["title-load"].hide(); - me["title-auto"].hide(); - me["file1"].setText(""); // Keep the frame - for(int i = 0; i < SLOTS_PER_PAGE; ++i){ - me["load" + std::to_string(i+1)].hide(); - } - }else{ - if(picking_auto){ - me["title-load"].hide(); - std::string title = me["title-auto"].getText(); - fs::path party_name = save_folder.filename(); - party_name.replace_extension(); - boost::replace_first(title, "{Folder}", party_name.string()); - me["title-auto"].setText(title); - }else{ - me["title-auto"].hide(); - } - me["title-save"].hide(); - me["file1-field"].hide(); - me["file1-extension-label"].hide(); - for(int i = 0; i < SLOTS_PER_PAGE; ++i){ - me["save" + std::to_string(i+1)].hide(); - } - } - me["cancel"].attachClickHandler(std::bind(&cFilePicker::doCancel, this)); me["find"].attachClickHandler(std::bind(&cFilePicker::doFileBrowser, this)); // Since it would be crazy to record and replay the metadata shown on a player's save picker