summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2022-04-30 06:42:09 +1000
committer Vas Crabb <vas@vastheman.com>2022-04-30 06:42:09 +1000
commit6ff40e09bd378f937ebfcb7980f7f8975bceb138 (patch)
tree94c62275c72199fc4cbfcd424f93a6ec5cf4158c /src/lib/formats
parent96175af1ea556efa40a0fbef15ed3e23ec07528b (diff)
Micscellaneous cleanup/fixes:
machine/z80scc.cpp: Fixed a cast-to-bool that broke detection of changes to one register bit. formats/fsmeta.cpp: Use visitors with variants where it makes sense. docs: Updated minimum required SDL version to 2.0.6 for all targets, added note that Python 3 is included with Xcode and updated instructions for downloading stand-alone Python 3 for macOS. ksys573.cpp: Don't create an insane number of textures for fghtmn and pnchman internal artwork. Tidied another batch of slot machine layouts.
Diffstat (limited to 'src/lib/formats')
-rw-r--r--src/lib/formats/fsmeta.cpp53
-rw-r--r--src/lib/formats/fsmeta.h5
2 files changed, 24 insertions, 34 deletions
diff --git a/src/lib/formats/fsmeta.cpp b/src/lib/formats/fsmeta.cpp
index 41ac767cd11..0e9b51094f0 100644
--- a/src/lib/formats/fsmeta.cpp
+++ b/src/lib/formats/fsmeta.cpp
@@ -34,48 +34,37 @@ const char *meta_data::entry_name(meta_name name)
return "";
}
-template<class... Ts> struct overloaded : Ts... { using Ts::operator()...; };
-template<class... Ts> overloaded(Ts...)->overloaded<Ts...>;
+template <class... Ts> struct overloaded : Ts... { using Ts::operator()...; };
+template <class... Ts> overloaded(Ts...) -> overloaded<Ts...>;
meta_type meta_value::type() const
{
std::optional<meta_type> result;
- std::visit(overloaded
- {
- [&result](const std::string &) { result = meta_type::string; },
- [&result](std::uint64_t) { result = meta_type::number; },
- [&result](bool) { result = meta_type::flag; },
- [&result](const util::arbitrary_datetime &) { result = meta_type::date; }
- }, value);
+ std::visit(
+ overloaded{
+ [&result] (const std::string &) { result = meta_type::string; },
+ [&result] (std::uint64_t) { result = meta_type::number; },
+ [&result] (bool) { result = meta_type::flag; },
+ [&result] (const util::arbitrary_datetime &) { result = meta_type::date; } },
+ value);
return *result;
}
std::string meta_value::to_string() const
{
std::string result;
-
- switch (type())
- {
- case meta_type::string:
- result = as_string();
- break;
- case meta_type::number:
- result = util::string_format("0x%x", as_number());
- break;
- case meta_type::flag:
- result = as_flag() ? "t" : "f";
- break;
- case meta_type::date:
- {
- auto dt = as_date();
- result = util::string_format("%04d-%02d-%02d %02d:%02d:%02d",
- dt.year, dt.month, dt.day_of_month,
- dt.hour, dt.minute, dt.second);
- }
- break;
- default:
- throw false;
- }
+ std::visit(
+ overloaded{
+ [&result] (const std::string &val) { result = val; },
+ [&result] (std::uint64_t val) { result = util::string_format("0x%x", val); },
+ [&result] (bool val) { result = val ? "t" : "f"; },
+ [&result] (const util::arbitrary_datetime &val)
+ {
+ result = util::string_format("%04d-%02d-%02d %02d:%02d:%02d",
+ val.year, val.month, val.day_of_month,
+ val.hour, val.minute, val.second);
+ } },
+ value);
return result;
}
diff --git a/src/lib/formats/fsmeta.h b/src/lib/formats/fsmeta.h
index 472fc61b762..e0177f74a8b 100644
--- a/src/lib/formats/fsmeta.h
+++ b/src/lib/formats/fsmeta.h
@@ -103,10 +103,11 @@ struct meta_description {
meta_name m_name;
meta_value m_default;
bool m_ro;
- std::function<void(const meta_value &)> m_validator;
+ std::function<void (const meta_value &)> m_validator;
const char *m_tooltip;
- template<typename T> meta_description(meta_name name, T def, bool ro, std::function<void(meta_value)> validator, const char *tooltip) :
+ template <typename T>
+ meta_description(meta_name name, T def, bool ro, std::function<void(meta_value)> validator, const char *tooltip) :
meta_description(name, meta_value(def), ro, std::move(validator), tooltip)
{}