mirror of https://github.com/OpenMW/openmw.git
Merge branch 'more_esm4_fields' into 'master'
Support ESM4 record FullName, CellFlags, X, Y fields by esmtool See merge request OpenMW/openmw!3299macos_ci_fix
commit
6ff2bb8aeb
@ -0,0 +1,37 @@
|
||||
#ifndef OPENMW_COMPONENTS_DEBUG_WRITEFLAGS_H
|
||||
#define OPENMW_COMPONENTS_DEBUG_WRITEFLAGS_H
|
||||
|
||||
#include <iomanip>
|
||||
#include <ostream>
|
||||
#include <string_view>
|
||||
|
||||
namespace Debug
|
||||
{
|
||||
template <class T>
|
||||
struct FlagString
|
||||
{
|
||||
T mValue;
|
||||
std::string_view mString;
|
||||
};
|
||||
|
||||
template <class T, class FlagStrings>
|
||||
std::ostream& writeFlags(std::ostream& stream, const T& value, const FlagStrings& flagStrings)
|
||||
{
|
||||
bool first = true;
|
||||
for (const auto& v : flagStrings)
|
||||
{
|
||||
if ((value & v.mValue) == 0)
|
||||
continue;
|
||||
if (first)
|
||||
first = false;
|
||||
else
|
||||
stream << " | ";
|
||||
stream << v.mString;
|
||||
}
|
||||
if (first)
|
||||
stream << "[None]";
|
||||
return stream << " (0x" << std::hex << value << std::resetiosflags(std::ios_base::hex) << ')';
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue