Merge branch 'master' into jgrpp
# Conflicts: # src/error.h # src/error_gui.cpp # src/linkgraph/linkgraph_gui.cpp # src/misc_gui.cpp # src/newgrf_gui.cpp # src/news_gui.cpp # src/rail_cmd.cpp # src/saveload/gamelog_sl.cpp # src/script/api/script_text.cpp # src/script/script_instance.cpp # src/statusbar_gui.cpp # src/strings.cpp # src/strings_func.h # src/strings_internal.h # src/table/settings/gui_settings.ini # src/table/settings/linkgraph_settings.ini # src/textbuf_gui.h
This commit is contained in:
@@ -10,6 +10,8 @@
|
||||
#ifndef STRINGS_TYPE_H
|
||||
#define STRINGS_TYPE_H
|
||||
|
||||
#include <optional>
|
||||
|
||||
/**
|
||||
* Numeric value that represents a string, independent of the selected language.
|
||||
*/
|
||||
@@ -92,4 +94,34 @@ enum SpecialStrings {
|
||||
SPECSTR_TEMP_START = 0x7000,
|
||||
};
|
||||
|
||||
/** Data that is to be stored when backing up StringParameters. */
|
||||
struct StringParameterBackup {
|
||||
uint64_t data; ///< The data field; valid *when* string has no value.
|
||||
std::optional<std::string> string; ///< The string value.
|
||||
|
||||
/**
|
||||
* Assign the numeric data with the given value, while clearing the stored string.
|
||||
* @param data The new value of the data field.
|
||||
* @return This object.
|
||||
*/
|
||||
StringParameterBackup &operator=(uint64_t data)
|
||||
{
|
||||
this->string.reset();
|
||||
this->data = data;
|
||||
return *this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Assign a copy of the given string to the string field, while clearing the data field.
|
||||
* @param string The new value of the string.
|
||||
* @return This object.
|
||||
*/
|
||||
StringParameterBackup &operator=(const std::string_view string)
|
||||
{
|
||||
this->data = 0;
|
||||
this->string.emplace(string);
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
|
||||
#endif /* STRINGS_TYPE_H */
|
||||
|
Reference in New Issue
Block a user