Convert some buffer messages to use fmtlib.

This commit is contained in:
2025-08-02 15:55:13 -04:00
committed by Celtic Minstrel
parent 6073b3a8f4
commit 731c2d60d6

View File

@@ -2,6 +2,7 @@
#include <cmath> #include <cmath>
#include <queue> #include <queue>
#include <boost/algorithm/string/replace.hpp> #include <boost/algorithm/string/replace.hpp>
#include <fmt/format.h>
#include "boe.global.hpp" #include "boe.global.hpp"
#include "tools/replay.hpp" #include "tools/replay.hpp"
@@ -833,7 +834,7 @@ void handle_talk(location destination, bool& did_something, bool& need_redraw, b
if(small_talk > 1000 && small_talk < 1000 + univ.scenario.spec_strs.size()) if(small_talk > 1000 && small_talk < 1000 + univ.scenario.spec_strs.size())
str = univ.scenario.spec_strs[small_talk - 1000]; str = univ.scenario.spec_strs[small_talk - 1000];
// TODO: Come up with a set of pre-cooked responses. // TODO: Come up with a set of pre-cooked responses.
add_string_to_buf("Talk: " + str, 4); add_string_to_buf(fmt::format("Talk: {}", str), 4);
} else if(univ.town.monst[i].is_alive()) { } else if(univ.town.monst[i].is_alive()) {
start_talk_mode(i,univ.town.monst[i].personality,univ.town.monst[i].number,univ.town.monst[i].facial_pic); start_talk_mode(i,univ.town.monst[i].personality,univ.town.monst[i].number,univ.town.monst[i].facial_pic);
did_something = false; did_something = false;
@@ -1006,7 +1007,7 @@ void handle_switch_pc(short which_pc, bool& need_redraw, bool& need_reprint) {
cPlayer& pc = univ.party[which_pc]; cPlayer& pc = univ.party[which_pc];
if(!prime_time() && overall_mode != MODE_SHOPPING && overall_mode != MODE_TALKING && overall_mode != MODE_ITEM_TARGET) if(!prime_time() && overall_mode != MODE_SHOPPING && overall_mode != MODE_TALKING && overall_mode != MODE_ITEM_TARGET)
add_string_to_buf("Set active: " + FINISH_FIRST); add_string_to_buf(fmt::format("Set active: {}", FINISH_FIRST));
else if(is_combat()) { else if(is_combat()) {
if(univ.debug_mode && pc.ap <= 0){ if(univ.debug_mode && pc.ap <= 0){
pc.ap = 4; pc.ap = 4;
@@ -1031,7 +1032,7 @@ void handle_switch_pc(short which_pc, bool& need_redraw, bool& need_reprint) {
store_cur_pc = -1; store_cur_pc = -1;
set_stat_window_for_pc(which_pc); set_stat_window_for_pc(which_pc);
add_string_to_buf("Now " + std::string(overall_mode == MODE_SHOPPING ? "shopping" : "active") + ": " + pc.name); add_string_to_buf(fmt::format(overall_mode == MODE_SHOPPING ? "Now shopping: {}" : "Now active: {}", pc.name));
adjust_spell_menus(); adjust_spell_menus();
need_redraw = true; need_redraw = true;
} }
@@ -1045,14 +1046,14 @@ void handle_switch_pc_items(short which_pc, bool& need_redraw) {
cPlayer& pc = univ.party[which_pc]; cPlayer& pc = univ.party[which_pc];
if(!prime_time() && overall_mode != MODE_TALKING && overall_mode != MODE_SHOPPING) if(!prime_time() && overall_mode != MODE_TALKING && overall_mode != MODE_SHOPPING)
add_string_to_buf("Set active: " + FINISH_FIRST); add_string_to_buf(fmt::format("Set active: {}", FINISH_FIRST));
else { else {
if(!is_combat()) { if(!is_combat()) {
if(pc.main_status != eMainStatus::ALIVE && (overall_mode != MODE_SHOPPING || active_shop.getType() != eShopType::ALLOW_DEAD)) if(pc.main_status != eMainStatus::ALIVE && (overall_mode != MODE_SHOPPING || active_shop.getType() != eShopType::ALLOW_DEAD))
add_string_to_buf("Set active: PC must be here & active."); add_string_to_buf("Set active: PC must be here & active.");
else { else {
univ.cur_pc = which_pc; univ.cur_pc = which_pc;
add_string_to_buf("Now active: " + pc.name); add_string_to_buf(fmt::format("Now active: {}", pc.name));
adjust_spell_menus(); adjust_spell_menus();
need_redraw = true; need_redraw = true;
} }
@@ -1083,7 +1084,7 @@ void handle_equip_item(short item_hit, bool& need_redraw) {
} else if(stat_screen_mode > MODE_SHOP) { } else if(stat_screen_mode > MODE_SHOP) {
// TODO: For some reason, the game didn't do anything at all in this case. // TODO: For some reason, the game didn't do anything at all in this case.
// I'm not sure why; maybe it intended to forward to the sell button? // I'm not sure why; maybe it intended to forward to the sell button?
} else add_string_to_buf("Equip: " + FINISH_FIRST); } else add_string_to_buf(fmt::format("Equip: {}", FINISH_FIRST));
} }
void handle_use_item(short item_hit, bool& did_something, bool& need_redraw) { void handle_use_item(short item_hit, bool& did_something, bool& need_redraw) {
@@ -1092,7 +1093,7 @@ void handle_use_item(short item_hit, bool& did_something, bool& need_redraw) {
} }
if(!prime_time()) { if(!prime_time()) {
add_string_to_buf("Use item: " + FINISH_FIRST); add_string_to_buf(fmt::format("Use item: {}", FINISH_FIRST));
return; return;
} }
use_item(stat_window, item_hit); use_item(stat_window, item_hit);
@@ -1108,7 +1109,7 @@ void handle_give_item(short item_hit, bool& did_something, bool& need_redraw) {
} }
if(!prime_time()) { if(!prime_time()) {
add_string_to_buf("Give item: " + FINISH_FIRST); add_string_to_buf(fmt::format("Give item: {}", FINISH_FIRST));
return; return;
} }
give_thing(stat_window, item_hit); give_thing(stat_window, item_hit);
@@ -1126,7 +1127,7 @@ void handle_drop_item(short item_hit, bool& need_redraw) {
add_string_to_buf("Drop item: Cancelled"); add_string_to_buf("Drop item: Cancelled");
overall_mode = is_town() ? MODE_TOWN : MODE_COMBAT; overall_mode = is_town() ? MODE_TOWN : MODE_COMBAT;
} else if(!prime_time()) } else if(!prime_time())
add_string_to_buf("Drop item: " + FINISH_FIRST); add_string_to_buf(fmt::format("Drop item: {}", FINISH_FIRST));
else if(is_out()) else if(is_out())
drop_item(stat_window,item_hit,univ.party.out_loc); drop_item(stat_window,item_hit,univ.party.out_loc);
else { else {
@@ -1226,7 +1227,7 @@ void handle_alchemy(bool& need_redraw, bool& need_reprint) {
} }
else if(is_combat()) add_string_to_buf("Alchemy: Not in combat."); else if(is_combat()) add_string_to_buf("Alchemy: Not in combat.");
else if(!is_town()) add_string_to_buf("Alchemy: Only in town."); else if(!is_town()) add_string_to_buf("Alchemy: Only in town.");
else add_string_to_buf("Alchemy: " + FINISH_FIRST); else add_string_to_buf(fmt::format("Alchemy: {}", FINISH_FIRST));
} }
static void handle_town_wait(bool& need_redraw, bool& need_reprint) { static void handle_town_wait(bool& need_redraw, bool& need_reprint) {
@@ -1297,7 +1298,7 @@ void handle_wait(bool& did_something, bool& need_redraw, bool& need_reprint) {
handle_stand_ready(need_redraw, need_reprint); handle_stand_ready(need_redraw, need_reprint);
advance_time(did_something, need_redraw, need_reprint); advance_time(did_something, need_redraw, need_reprint);
} else { } else {
add_string_to_buf("Wait: " + FINISH_FIRST); add_string_to_buf(fmt::format("Wait: {}", FINISH_FIRST));
print_buf(); print_buf();
} }
} }
@@ -1506,7 +1507,7 @@ void handle_trade_places(int which_pc, bool& need_reprint) {
record_action("handle_trade_places", boost::lexical_cast<std::string>(which_pc)); record_action("handle_trade_places", boost::lexical_cast<std::string>(which_pc));
} }
if(!prime_time()) if(!prime_time())
add_string_to_buf("Trade places: " + FINISH_FIRST, 2); add_string_to_buf(fmt::format("Trade places: {}", FINISH_FIRST), 2);
else if(is_combat()) else if(is_combat())
add_string_to_buf("Trade places: Can't do this in combat."); add_string_to_buf("Trade places: Can't do this in combat.");
else { else {
@@ -1994,7 +1995,7 @@ void handle_menu_spell(eSpell spell_picked) {
eSkill spell_type = (*spell_picked).type; eSkill spell_type = (*spell_picked).type;
if(!prime_time()) { if(!prime_time()) {
ASB("Cast: " + FINISH_FIRST); ASB(fmt::format("Cast: {}", FINISH_FIRST));
print_buf(); print_buf();
return; return;
} }
@@ -2162,11 +2163,11 @@ void debug_give_item() {
bool given = univ.current_pc().give_item(univ.scenario.scen_items[i], GIVE_DO_PRINT | GIVE_ALLOW_OVERLOAD) == eBuyStatus::OK; bool given = univ.current_pc().give_item(univ.scenario.scen_items[i], GIVE_DO_PRINT | GIVE_ALLOW_OVERLOAD) == eBuyStatus::OK;
if(!given){ if(!given){
ASB("Debug: can't give to " + univ.current_pc().name); ASB(fmt::format("Debug: can't give to {}", univ.current_pc().name));
given = univ.party.give_item(univ.scenario.scen_items[i], GIVE_DO_PRINT | GIVE_ALLOW_OVERLOAD); given = univ.party.give_item(univ.scenario.scen_items[i], GIVE_DO_PRINT | GIVE_ALLOW_OVERLOAD);
} }
if(!given) if(!given)
ASB("Debug: can't give anyone " + univ.scenario.scen_items[i].full_name); ASB(fmt::format("Debug: can't give anyone {}", univ.scenario.scen_items[i].full_name));
univ.scenario.scen_items[i].ident = was_ident; univ.scenario.scen_items[i].ident = was_ident;
print_buf(); print_buf();
@@ -2186,9 +2187,9 @@ void debug_overburden() {
// Give the PC very heavy objects that do nothing: // Give the PC very heavy objects that do nothing:
while(pc.give_item(item, GIVE_ALLOW_OVERLOAD) == eBuyStatus::OK){} while(pc.give_item(item, GIVE_ALLOW_OVERLOAD) == eBuyStatus::OK){}
if(pc.has_space()){ if(pc.has_space()){
ASB("Debug: failed to fill " + pc.name + "'s inventory."); ASB(fmt::format("Debug: failed to fill {}'s inventory.", pc.name));
}else{ }else{
ASB("Debug: filled " + pc.name + "'s inventory."); ASB(fmt::format("Debug: filled {}'s inventory.", pc.name));
} }
print_buf(); print_buf();
stat_window = eItemWinMode(univ.cur_pc); stat_window = eItemWinMode(univ.cur_pc);
@@ -3009,7 +3010,7 @@ bool handle_keystroke(const sf::Event& event, cFramerateLimiter& fps_limiter){
else if(is_out()) else if(is_out())
ASB("Use: not outdoors"); ASB("Use: not outdoors");
else else
ASB("Use: " + FINISH_FIRST); ASB(fmt::format("Use: {}", FINISH_FIRST));
break; break;
case 'b': // Bash door case 'b': // Bash door
@@ -3020,7 +3021,7 @@ bool handle_keystroke(const sf::Event& event, cFramerateLimiter& fps_limiter){
else if(is_out()) else if(is_out())
ASB("Bash Door: not outdoors"); ASB("Bash Door: not outdoors");
else else
ASB("Bash Door: " + FINISH_FIRST); ASB(fmt::format("Bash Door: {}", FINISH_FIRST));
break; break;
case 'L': // Pick lock case 'L': // Pick lock
@@ -3031,7 +3032,7 @@ bool handle_keystroke(const sf::Event& event, cFramerateLimiter& fps_limiter){
else if(is_out()) else if(is_out())
ASB("Pick Lock: not outdoors"); ASB("Pick Lock: not outdoors");
else else
ASB("Pick Lock: " + FINISH_FIRST); ASB(fmt::format("Pick Lock: {}", FINISH_FIRST));
break; break;
case 'A': // Alchemy case 'A': // Alchemy
@@ -3605,7 +3606,7 @@ void handle_drop_pc() {
record_action("handle_drop_pc", ""); record_action("handle_drop_pc", "");
} }
if(!prime_time()) { if(!prime_time()) {
ASB("Delete PC: " + FINISH_FIRST); ASB(fmt::format("Delete PC: {}", FINISH_FIRST));
print_buf(); print_buf();
}else if(is_combat()){ }else if(is_combat()){
add_string_to_buf("Delete PC: Not in combat."); add_string_to_buf("Delete PC: Not in combat.");
@@ -3874,7 +3875,7 @@ static void run_waterfalls(short mode){ // mode 0 - town, 1 - outdoors
if(lost >= ter.flag3) { if(lost >= ter.flag3) {
lost = ter.flag3; lost = ter.flag3;
add_string_to_buf(" (Many supplies lost.)"); add_string_to_buf(" (Many supplies lost.)");
} else add_string_to_buf(" (" + std::to_string(lost) + " supplies lost.)"); } else add_string_to_buf(fmt::format(" ({} supplies lost.)", lost));
univ.party.food -= lost; univ.party.food -= lost;
} }
put_pc_screen(); put_pc_screen();
@@ -4074,7 +4075,7 @@ bool outd_move_party(location destination,bool forced) {
univ.party.i_w_c.x = (univ.party.out_loc.x > 47) ? 1 : 0; univ.party.i_w_c.x = (univ.party.out_loc.x > 47) ? 1 : 0;
univ.party.i_w_c.y = (univ.party.out_loc.y > 47) ? 1 : 0; univ.party.i_w_c.y = (univ.party.out_loc.y > 47) ? 1 : 0;
univ.party.loc_in_sec = global_to_local(univ.party.out_loc); univ.party.loc_in_sec = global_to_local(univ.party.out_loc);
add_string_to_buf("Moved: " + dir_str); add_string_to_buf(fmt::format("Moved: {}", dir_str));
move_sound(univ.out[real_dest.x][real_dest.y],num_out_moves); move_sound(univ.out[real_dest.x][real_dest.y],num_out_moves);
num_out_moves++; num_out_moves++;
@@ -4096,7 +4097,7 @@ bool outd_move_party(location destination,bool forced) {
return true; return true;
} }
else { else {
add_string_to_buf("Blocked: " + dir_str); add_string_to_buf(fmt::format("Blocked: {}", dir_str));
return false; return false;
} }
} }
@@ -4203,7 +4204,7 @@ bool town_move_party(location destination,short forced) {
} }
univ.party.town_loc = destination; univ.party.town_loc = destination;
add_string_to_buf("Moved: " + dir_str); add_string_to_buf(fmt::format("Moved: {}", dir_str));
// place_treasure(destination,5,3); // place_treasure(destination,5,3);
move_sound(univ.town->terrain(destination.x,destination.y),(short) univ.party.age); move_sound(univ.town->terrain(destination.x,destination.y),(short) univ.party.age);
@@ -4359,7 +4360,7 @@ void preview_every_dialog_xml() {
std::string confirm = dlog.show(); std::string confirm = dlog.show();
if(confirm == "yes"){ if(confirm == "yes"){
std::for_each(dialog_paths.begin(), dialog_paths.end(), [](fs::path path) { std::for_each(dialog_paths.begin(), dialog_paths.end(), [](fs::path path) {
LOG("Previewing dialog: " + path.stem().string()); LOG(fmt::format("Previewing dialog: {}", path.stem().string()));
preview_dialog_xml(path); preview_dialog_xml(path);
}); });
} }