From 1055ae02499ade5ecf3d1f05e0cd539264fdb952 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Wed, 14 May 2025 13:05:11 +0200 Subject: [PATCH] ru:: parse markup in hints and help --- rogueviz/ru/entity.cpp | 4 ++-- rogueviz/ru/globals.cpp | 2 ++ rogueviz/ru/ru.cpp | 17 +++++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/rogueviz/ru/entity.cpp b/rogueviz/ru/entity.cpp index 89c840d0..648ff42c 100644 --- a/rogueviz/ru/entity.cpp +++ b/rogueviz/ru/entity.cpp @@ -255,7 +255,7 @@ void npc_or_trader::act() { pushScreen([&] { cmode = mode::playing; popScreen(); }); pushScreen([&] { dialog::init(name, color() >> 8); - dialog::addHelp(text); + dialog::addHelp(parse_markup(text)); dialog::addBreak(100); dialog::addBack(); dialog::display(); @@ -360,7 +360,7 @@ void hint::act() { bool cur = intersect(get_pixel_bbox(), m.get_pixel_bbox()); if(gframeid < 300) cur = 0; if(cur && !state) { - addMessage(hint_text); + addMessage(parse_markup(hint_text)); } state = cur; } diff --git a/rogueviz/ru/globals.cpp b/rogueviz/ru/globals.cpp index 6a8d6c80..78c2d49a 100644 --- a/rogueviz/ru/globals.cpp +++ b/rogueviz/ru/globals.cpp @@ -163,4 +163,6 @@ void add_revert(revert_stack& s, const reaction_t& what); void revert_all(revert_stack& s); +string parse_markup(string s); + } diff --git a/rogueviz/ru/ru.cpp b/rogueviz/ru/ru.cpp index 5faa0ac6..00972770 100644 --- a/rogueviz/ru/ru.cpp +++ b/rogueviz/ru/ru.cpp @@ -349,6 +349,23 @@ void set_sval() { } } +string parse_markup(string s) { + while(s.find("\\n") != string::npos) s.replace(s.find("\\n"), 2, "\n"); + while(s.find("[key:") != string::npos) { + int kf = s.find("[key:"); + int ke = s.find("]", kf); + string what = s.substr(kf+5, ke-kf-5); + bool ok = false; + for(auto& p: powers) if(p.name == what) { + s.replace(kf, ke-kf+1, dialog::keyname(p.key)); + ok = true; + break; + } + if(!ok) return s; + } + return s; + } + void enable() { stop_game();